
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt nền tảng Thương mại điện tử Magento 2 trên Ubuntu 18.04 | 20.04 với máy chủ Nginx HTTP và Let’s encrypt để config ssl cho tên miền.
Magento một nền tảng Thương mại điện tử mã nguồn mở miễn phí được viết bằng PHP được hàng triệu doanh nghiệp nhỏ sử dụng để bán và quản lý sản phẩm của họ trực tuyến.
Nó cho phép bạn tạo một cửa hàng trực tuyến hoàn chỉnh, bao gồm quản lý hàng tồn kho, danh mục sản phẩm, vận chuyển, lập hóa đơn và nhiều hơn nữa.
Bạn có thể sử dụng Magento để điều hành các cửa hàng trực tuyến của mình và xây dựng trải nghiệm kỹ thuật số tuyệt vời với một chút nỗ lực.
Nếu bạn đang tìm kiếm một nền tảng cửa hàng trực tuyến cấp doanh nghiệp để bán sản phẩm của mình, Magento có lẽ nên là một điểm khởi đầu cho bạn. Và nếu bạn muốn tìm hiểu cách dễ dàng cài đặt và quản lý nó, thì bài đăng này là tất cả những gì bạn cần.
Để biết thêm về Magento, vui lòng xem Trang chủ của họ
Để bắt đầu cài đặt Magento, hãy làm theo các bước bên dưới:
Bước 1: Cài đặt Nginx HTTP Server
Magento yêu cầu một máy chủ web để hoạt động và Nginx là một trong những máy chủ web nguồn mở phổ biến nhất hiện nay.
Để cài đặt Nginx trên Ubuntu, hãy chạy các lệnh bên dưới:
sudo apt update sudo apt install nginx
Sau khi cài đặt Nginx, các lệnh dưới đây có thể được sử dụng để dừng , khởi động và kích hoạt dịch vụ Nginx luôn khởi động khi máy chủ khởi động.
sudo systemctl stop nginx.service sudo systemctl start nginx.service sudo systemctl enable nginx.service
Để kiểm tra xem Nginx đã được cài đặt và hoạt động hay chưa, hãy mở trình duyệt web của bạn và duyệt đến địa chỉ IP hoặc tên máy chủ của máy chủ.

Nếu bạn thấy trang trên trong trình duyệt của mình, thì Nginx đang hoạt động như mong đợi.
Bước 2: Cài đặt máy chủ cơ sở dữ liệu MariaDB
Bạn cũng sẽ cần một máy chủ cơ sở dữ liệu để chạy Magento. Máy chủ cơ sở dữ liệu là nơi lưu trữ data của Magento.
Một máy chủ cơ sở dữ liệu nguồn mở thực sự mà bạn có thể sử dụng với Magento là cơ sở dữ liệu MariaDB. Nó nhanh, an toàn và là máy chủ mặc định cho hầu hết tất cả các máy chủ Linux.
Để cài đặt MariaDB, hãy chạy các lệnh dưới đây:
sudo apt-get install mariadb-server mariadb-client -y
Sau khi cài đặt MariaDB, các lệnh dưới đây có thể được sử dụng để dừng , khởi động và cho phép dịch vụ MariaDB luôn khởi động khi máy chủ khởi động.
sudo systemctl stop mariadb.service sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
Tiếp theo, hãy chạy các lệnh bên dưới để bảo mật máy chủ cơ sở dữ liệu bằng mật khẩu gốc nếu bạn không được nhắc làm như vậy trong khi cài đặt.
sudo mysql_secure_installation
Khi được nhắc, hãy trả lời các câu hỏi bên dưới bằng cách làm theo hướng dẫn.
- Enter current password for root (enter for none): Just press the Enter
- Set root password? [Y/n]: Y
- New password: Enter password
- Re-enter new password: Repeat password
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
Để xác minh và xác thực rằng MariaDB đã được cài đặt và hoạt động, hãy đăng nhập vào bảng điều khiển cơ sở dữ liệu bằng các lệnh bên dưới:
sudo mysql -u root -p
gõ mật khẩu root khi được nhắc.

Nếu bạn thấy một màn hình tương tự như hình trên, thì máy chủ đã được cài đặt thành công.
Bước 3: Cài đặt PHP 7.4 và các mô-đun liên quan
Magento là một ứng dụng dựa trên PHP và cần có PHP để chạy nó. Vì một số phiên bản Ubuntu không có phiên bản PHP mới nhất, bạn có thể thêm kho lưu trữ PPA của bên thứ ba để cài đặt PHP từ đó.
Lệnh dưới đây sẽ thêm PPA của bên thứ ba vào Ubuntu.
sudo apt-get install software-properties-common sudo add-apt-repository ppa:ondrej/php
Sau đó cập nhật và nâng cấp lên PHP 7.4
sudo apt update
Tiếp theo, chạy các lệnh bên dưới để cài đặt PHP 7.4 và các mô-đun liên quan.
sudo apt install php7.4-fpm php7.4-common php7.4-mysql php7.4-gmp php7.4-curl php7.4-intl php7.4-mbstring php7.4-xmlrpc php7.4-gd php7.4-xml php7.4-cli php7.4-zip
Sau khi cài đặt PHP 7.4, hãy truy cập và cấu hình một số cài đặt cơ bản có thể cần thiết để Magento hoạt động bình thường.
Chạy các lệnh dưới đây để mở file config của PHP
sudo nano /etc/php/7.4/fpm/php.ini
Dưới đây là các cài đặt tốt để định cấu hình cho hầu hết các trang web Magento.
file_uploads = On allow_url_fopen = On short_open_tag = On memory_limit = 256M cgi.fix_pathinfo = 0 upload_max_filesize = 100M max_execution_time = 360 date.timezone = America/Chicago
Điều đó sẽ được cài đặt PHP 7.4 với một số cài đặt cơ bản để cho phép Magento hoạt động.
Bước 4: Tạo database Magento
Khi tất cả các máy chủ được cài đặt ở trên, bây giờ là lúc bắt đầu thiết lập môi trường Magento. Đầu tiên, hãy chạy các bước bên dưới để tạo cơ sở dữ liệu trống cho Magento sử dụng.
Đăng nhập vào bảng điều khiển cơ sở dữ liệu MariaDB bằng các lệnh dưới đây:
mysql -u root -p
Sau đó, tạo một cơ sở dữ liệu có tên magento
CREATE DATABASE magento;
Tiếp theo, tạo một cơ sở dữ liệu người dùng được gọi magentouser và đặt mật khẩu
CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'new_password_here';
Sau đó cấp cho người dùng toàn quyền truy cập vào cơ sở dữ liệu.
GRANT ALL ON magento.* TO 'magentouser'@'localhost' WITH GRANT OPTION;
Cuối cùng, lưu các thay đổi của bạn và thoát.
FLUSH PRIVILEGES; EXIT;
Bước 5: Cài đặt elastic search
Các package của Elasticsearch không có sẵn trong kho package mặc định của Ubuntu. Tuy nhiên, chúng có thể được cài đặt với APT sau khi thêm source package của Elastic vào.
Tất cả các package được ký bằng khóa ký Elasticsearch để bảo vệ hệ thống của bạn khỏi việc giả mạo package. Các package đã được xác thực bằng khóa sẽ được trình quản lý package của bạn coi là đáng tin cậy. Trong bước này, bạn sẽ nhập public key GPG của Elastic search và thêm danh sách nguồn gói Elastic để cài đặt Elasticsearch.
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
Tiếp theo, thêm Elastic source list vào thư mục sources.list.d, nơi APT sẽ tìm kiếm các nguồn mới:
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
Tiếp theo, cập nhật danh sách gói của bạn để APT sẽ đọc Elastic source list mới:
sudo apt update
Sau đó cài đặt Elasticsearch bằng lệnh này:
sudo apt install elasticsearch
Elasticsearch hiện đã được cài đặt và sẵn sàng được sử dụng.
Bước 5: Tải xuống Magento
(Lưu ý: Domain example.com trong hướng dẫn chỉ là domain để hướng dẫn bạn, bạn vui lòng dùng domain của bạn hoặc bạn có thể chỉnh hosts của bạn để sử dụng domain đó)
Tại thời điểm này, Magento đã sẵn sàng để được tải xuống và cài đặt. Sử dụng các lệnh bên dưới để tải xuống phiên bản Magento mới nhất.
Để tải bản phát hành mới nhất của Magento, bạn có thể muốn sử dụng kho lưu trữ Github… Cài đặt Composer, Curl và các phần phụ thuộc khác để bắt đầu…
sudo apt install curl git curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer
Sau khi cài đặt curl và Composer ở trên, hãy chuyển sang thư mục gốc Nginx và tải xuống các gói Magento 2 từ Github.
Khi được nhắc, hãy nhập khóa xác thực của bạn .Public key của bạn là tên người dùng của bạn; private key của bạn là mật khẩu của bạn…. ( https://marketplace.magento.com/customer/accessKeys/ )

Bạn sẽ phải đăng ký một tài khoản để tạo khóa ở trên.
Chạy các lệnh bên dưới để tạo một project mới được gọi magento.
cd /var/www/ sudo composer create-project --repository=https://repo.magento.com/ magento/project-community-edition magento
Sao chép và dán key xác thực… ( Public key là tên người dùng của bạn; Private key là mật khẩu của bạn)
OUTPUT: Authentication required (repo.magento.com): Username: 234f2343435d190983j0ew8u3220 Password: Do you want to store credentials for repo.magento.com in /opt/magento/.config/composer/auth.json ? [Yn] Y
Sau khi tải xuống các gói Magento, hãy chạy các lệnh bên dưới để cài đặt Magento với các tùy chọn sau:
cd /var/www/magento sudo bin/magento setup:install --base-url-secure=https://example.com/ --db-host=localhost --db-name=magento --db-user=magentouser --db-password=db_user_password_here --admin-firstname=Admin --admin-lastname=User --admin-email=admin@example.com --admin-user=admin --admin-password=admin123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1
- Phần mềm Magento được cài đặt trong thư mục gốc trên localhost…. Admin là quản trị viên ; do đó: URL trang chủ cửa hàng của bạn là https://example.com
- Máy chủ cơ sở dữ liệu nằm trên cùng một localhost với máy chủ web….
- Tên cơ sở dữ liệu là magento , magentouser và mật khẩu là db_user_password_here
- Sử dụng rewrites server
- Quản trị viên Magento có các thuộc tính sau:
- Họ và tên là: Admin User
- Tên người dùng là: admin
- Mật khẩu là admin123
- Địa chỉ e-mail là: admin@example.com
- Ngôn ngữ mặc định là: (Tiếng Anh Mỹ)
- Đơn vị tiền tệ mặc định là: đô la Mỹ
- Múi giờ mặc định là: Trung tâm Hoa Kỳ (Châu Mỹ / Chicago)
Sau đó, hãy chạy các lệnh bên dưới để đặt các quyền phù hợp cho Magento 2 hoạt động.
Sau đó chạy lệnh dưới đây để cho phép người dùng www-data sở hữu thư mục Magento.
sudo chown -R www-data:www-data /var/www/magento/ sudo chmod -R 755 /var/www/magento/
Bước 6: Cấu hình Nginx
Dưới đây là nơi bạn định cấu hình tệp Nginx VirtualHost cho trang Magento mà bạn đang tạo. Tệp này xác định cách xử lý và xử lý các yêu cầu của khách hàng.
Chạy các lệnh bên dưới để tạo tệp VirtualHost mới với tên magento trong thư mục /etc/nginx/sites-available/ .
sudo nano /etc/nginx/sites-available/magento
Dưới đây là cài đặt cấu hình phù hợp cho hầu hết các trang web magento trên máy chủ Nginx. Cấu hình này sẽ hoạt động tốt.
Sao chép nội dung bên dưới và lưu vào tệp đã tạo ở trên.
upstream fastcgi_backend {
server unix:/var/run/php/php7.4-fpm.sock;
}
server {
listen 80;
listen [::]:80;
server_name example.com www.example.com;
index index.php;
set $MAGE_ROOT /var/www/magento;
set $MAGE_MODE production;
access_log /var/log/nginx/example.com-access.log;
error_log /var/log/nginx/example.com-error.log;
include /var/www/magento/nginx.conf.sample;
}
Lưu file và thoát.
Sau khi lưu tệp ở trên, hãy chạy các lệnh bên dưới để kích hoạt trang web mới, sau đó khởi động lại máy chủ Nginx.
sudo ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/ sudo systemctl restart nginx.service
Ở giai đoạn này, Magento đã sẵn sàng và có thể được khởi chạy bằng cách truy cập IP hoặc tên máy chủ của máy chủ.
Tuy nhiên, nếu bạn muốn bật SSL hoặc chấp nhận lưu lượng truy cập web qua HTTPS, thì bạn có thể tiếp tục bên dưới để cài đặt và định cấu hình chứng chỉ SSL miễn phí của Let’s Encrypt.
Bước 7: Cài đặt Let’s Encrypt Wildcard Certificates
Ở bước 6, Magento đã sẵn sàng để sử dụng mà không cần SSL. Tuy nhiên, nếu bạn muốn phục vụ lưu lượng truy cập web qua HTTPS, thì việc cài đặt và định cấu hình chứng chỉ SSL Let’s Encrypt hoặc các chứng chỉ công khai khác là điều bắt buộc.
Để cài đặt Let’s Encrypt, hãy chạy các lệnh bên dưới.
sudo snap install --classic certbot
Các lệnh trên sẽ cài đặt công cụ certbot và tất cả các phụ thuộc sẽ được phép làm cho công cụ hoạt động.
Let’s Encrypt cung cấp nhiều cách để thách thức bạn xác thực rằng bạn sở hữu miền mà bạn muốn cung cấp chứng chỉ SSL. Bạn sẽ không thể tạo chứng chỉ nếu bạn không thể chứng minh rằng bạn sở hữu miền bạn muốn bảo mật.
Chạy lệnh dưới để tạo chứng chỉ mới cho domain của bạn:
sudo certbot
Bạn hãy nhập đầy đủ thông tin. Sau khi nhập xong, certbot sẽ tự động tạo certificate sau khi đã validate domain của bạn thành công và sẽ tự động cấu hình vào nginx cho bạn. Hãy thử truy cập vào trình duyện để xem nó đã hoạt động hay chưa:
Trang chủ Magento sẽ được hiển thị trên màn hình của bạn.

Nâng cấp Magento
Nếu bạn muốn nâng cấp Magento trong tương lai, chỉ cần làm theo các bước bên dưới:
Đầu tiên dừng máy chủ web.
sudo systemctl stop nginx
Trong tương lai khi bạn muốn nâng cấp lên phiên bản mới phát hành, chỉ cần chạy các lệnh bên dưới để nâng cấp…
cd /var/www/magento sudo bin/magento maintenance:enable sudo composer require magento/product-community-edition 2.2.5 --no-update sudo composer update sudo php bin/magento setup:upgrade sudo php bin/magento setup:di:compile sudo php bin/magento indexer:reindex sudo php bin/magento maintenance:disable
Bạn có thể phải chạy lại để cập nhật các quyền của thư mục Nginx …
Đó là nó!
Xin chúc mừng! Bạn đã cài đặt thành công Magento trên Ubuntu 18.04 | 20.04. Nếu bạn phát hiện bất kỳ lỗi nào ở trên, vui lòng để lại bình luận bên dưới.
Cảm ơn
