Cách cài đặt Magento 2 với Nginx và Let's Encrypt SSL trên Ubuntu 20.04 LTS

theanh

Administrator
Nhân viên
Magento là phần mềm thương mại điện tử mã nguồn mở và hệ thống quản lý nội dung được sử dụng rộng rãi cho các trang web thương mại điện tử dựa trên PHP Zend Framework. Nó sử dụng MySQL hoặc MariaDB làm cơ sở dữ liệu phụ trợ. Quá trình phát triển Magento được Varien bắt đầu vào năm 2008.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn từng bước cách cài đặt Magento 2 trên phiên bản mới nhất Ubuntu 20.04. Chúng tôi sẽ cài đặt Magento theo ngăn xếp LEMP, máy chủ web Nginx, PHP-FPM 7.3 và máy chủ MariaDB.

Yêu cầu

Đối với hướng dẫn này, chúng tôi sẽ cài đặt Magento 2 trên hệ thống Ubuntu 20.04 với 2 GB RAM, 50 GB dung lượng đĩa trống và 2 CPU.

Chúng tôi sẽ làm gì?
  • Cài đặt Nginx Webserver
  • Cài đặt và cấu hình PHP-FPM 7.3
  • Cài đặt và cấu hình MySQL Server
  • Cài đặt PHP Composer
  • Tải xuống và cài đặt Magento
  • Tạo SSL Letsencrypt
  • Thiết lập Nginx Virtualhost cho Magento
  • Hậu cài đặt Magento

Bước 1 - Cài đặt Nginx Webserver​

Đầu tiên, chúng tôi sẽ cài đặt máy chủ web Nginx vào hệ thống Ubuntu 20.04.

Cài đặt Nginx bằng lệnh apt bên dưới.
Mã:
sudo apt install nginx
Sau khi hoàn tất quá trình cài đặt, hãy khởi động dịch vụ Nginx và thêm nó vào hệ thống khởi động.
Mã:
systemctl start nginx
systemctl enable nginx
Sau đó, hãy kiểm tra trạng thái dịch vụ Nginx bằng lệnh sau.
Mã:
systemctl status nginx
Máy chủ web Nginx đang hoạt động trên Ubuntu 20.04 Máy chủ.



Tiếp theo, chúng ta sẽ mở các cổng HTTP và HTTPS trên hệ thống Ubuntu của mình.

Chạy lệnh ufw bên dưới.
Mã:
for svc in ssh http https
do
ufw allow $svc
done
Kết quả là các dịch vụ SSH, HTTP và HTTPS đã được thêm vào quy tắc tường lửa ufw.

Bây giờ hãy chạy lệnh bật tường lửa ufw bằng lệnh sau.
Mã:
ufw enable
'y' và nhấn Enter, vậy là bạn đã bật tường lửa ufw.

Bước 2 - Cài đặt và cấu hình PHP-FPm 7.3​

Sau khi cài đặt máy chủ web Nginx, chúng ta sẽ cài đặt PHP-FPM vào Máy chủ Ubuntu 20.04 của mình.

Theo mặc định, Ubuntu Phiên bản 20.04 đi kèm với phiên bản mới nhất của PHP/PHP-FPM 7.4. Nhưng hiện tại, Magento chỉ hoạt động với PHP/PHP-FPM 7.3. Và trong bước này, chúng ta sẽ cài đặt PHP-FPM 7.3 từ kho lưu trữ PPA.

Trước khi thực hiện các bước tiếp theo, hãy cài đặt gói 'software-properties-common' và thêm kho lưu trữ PPA cho PHP 7.3 bằng lệnh sau.
Mã:
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
'add-apt-repository' sẽ tự động cập nhật tất cả các kho lưu trữ trên hệ thống.

Bây giờ hãy cài đặt các gói PHP-FPM 7.3 từ kho lưu trữ PPA bằng lệnh apt bên dưới.
Mã:
sudo apt install php7.3-fpm php7.3-common php7.3-curl php7.3-cli php7.3-mysql php7.3-gd php7.3-xml php7.3-json php7.3-intl php-pear php7.3-dev php7.3-common php7.3-mbstring php7.3-zip php7.3-soap php7.3-bcmath php7.3-opcache -y
Và quá trình cài đặt PHP-FPM 7.3 đã hoàn tất.

Sau đó, hãy vào thư mục '/etc/php/7.3' và chỉnh sửa cấu hình 'php.ini' cho PHP-FPM.
Mã:
cd /etc/php/7.3/
vim fpm/php.ini
Bỏ chú thích và thay đổi cấu hình như bên dưới.
Mã:
date.timezone = Asia/Singapore
memory_limit = 1G
max_execution_time = 1800
zlib.output_compression = On
cgi.fix_pathinfo = 0

opcache.enable=1 
opcache.save_comments = 1
Lưu và đóng.

Tiếp theo, khởi động dịch vụ PHP-FPM và thêm nó vào hệ thống khởi động.
Mã:
systemctl start php7.3-fpm
systemctl enable php7.3-fpm


Dịch vụ PHP-FPM đã hoạt động, hãy kiểm tra bằng lệnh bên dưới.
Mã:
ss -xa | grep php
systemctl status php7.3-fpm
Kết quả là, PHP-FPM đã hoạt động trên máy chủ Ubuntu 20.04, chạy dưới tệp sock '/run/php/php7.3-fpm.sock'.


Bước 3 - Cài đặt và cấu hình máy chủ MariaDB​

Trong bước này, chúng ta sẽ cài đặt máy chủ cơ sở dữ liệu MariaDB, thiết lập mật khẩu gốc mặc định cho MariaDB và tạo cơ sở dữ liệu và người dùng mới cho Magento.

Cài đặt các gói máy chủ MariaDB vào Ubuntu 20.04 bằng lệnh apt bên dưới.
Mã:
sudo apt install mariadb-server
Sau khi hoàn tất quá trình cài đặt, hãy khởi động dịch vụ MariaDB và thêm dịch vụ này vào hệ thống khởi động.
Mã:
systemctl start mariadb
systemctl enable mariadb
Dịch vụ MariaDB đã hoạt động.

Tiếp theo, chúng ta sẽ thiết lập mật khẩu gốc MariaDB bằng tiện ích 'mysql_secure_instalaltion'.

Chạy lệnh 'mysql_secure_instalaltion' bên dưới.
Mã:
mysql_secure_installation
Nhập mật khẩu mạnh của bạn cho người dùng gốc MariaDB và nhập 'Y' cho tất cả cấu hình.
Mã:
Đặt mật khẩu gốc? [Y/n] Y
Xóa người dùng ẩn danh? [Y/n] Y
Không cho phép đăng nhập gốc từ xa? [Y/n] Y
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] Y
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] Y
Kết quả là mật khẩu gốc MariaDB đã được cấu hình.



Tiếp theo, chúng ta sẽ tạo một cơ sở dữ liệu và người dùng mới cho cài đặt Magento.

Đăng nhập vào shell MariaDB/MySQL bằng lệnh mysql bên dưới.
Mã:
mysql -u root -p
Bây giờ hãy tạo một cơ sở dữ liệu mới cho cài đặt Magento của chúng ta. Tạo cơ sở dữ liệu 'magentodb' và người dùng 'magentouser' với mật khẩu 'magentodbpass'.

Chạy các truy vấn MySQL bên dưới.
Mã:
create database magentodb;
create user magentouser@'localhost' defined by 'magentopassdb';
grant all privileges on magentodb.* to magentouser@'localhost';
flush privileges;
Bây giờ hãy nhập 'exit' để đăng xuất khỏi shell MySQL.



Kết quả là cơ sở dữ liệu và người dùng mới để cài đặt Magento đã hoàn tất.

Bước 4 - Cài đặt Composer​

Composer là trình quản lý phụ thuộc cho PHP. đó là trình quản lý gói cấp ứng dụng cho PHP cho phép bạn tải xuống các thư viện và phụ thuộc PHP bổ sung vào dự án PHP của mình.

Trong bước này, chúng ta sẽ cài đặt PHP Composer từ kho lưu trữ Ubuntu.

Cài đặt Composer bằng lệnh apt bên dưới.
Mã:
sudo apt install composer -y
Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản composer bên dưới.
Mã:
composer --version
Dưới đây là phản hồi bạn sẽ nhận được.
Mã:
Composer 1.10.1 2020-03-13 20:34:27
Như có thể thấy, Composer 1.10 đã được cài đặt trên Máy chủ Ubuntu 20.04.

Bước 5 - Tải xuống và cài đặt Magento 2​

Trong bước này, chúng ta sẽ tải xuống và cài đặt Magento 2 và tất cả các gói PHP cần thiết bằng Composer.

Đầu tiên, hãy vào thư mục '/var/www/' và tải xuống mã nguồn Magento 2.3.5 CE (Community Edition) bằng lệnh wget như bên dưới.
Mã:
cd /var/www/
wget -q https://github.com/magento/magento2/archive/2.3.5.tar.gz
Sau khi hoàn tất, hãy giải nén mã nguồn Magento và đổi tên thư mục đã giải nén thành thư mục 'magento2'.
Mã:
tar -xf 2.3.5.tar.gz
mv magento2-*/ magento2/
Tiếp theo, hãy vào thư mục cài đặt Magento '/var/www/magento2' và cài đặt tất cả các gói PHP phụ thuộc cho Magento bằng lệnh Composer như bên dưới.
Mã:
cd /var/www/magento2/
composer install


Sau khi hoàn tất cài đặt, hãy sửa quyền sở hữu thư mục cài đặt Magento 2 thành người dùng 'www-data'.
Mã:
chown -R www-data:www-data /var/www/magento2
Kết quả là quá trình cài đặt Magento 2 và tất cả các gói phụ thuộc đã hoàn tất.

Bước 6 - Tạo SSL Letsencrypt​

Đối với hướng dẫn này, chúng tôi sẽ bảo mật cài đặt Magento 2 bằng SSL Letsencrypt. Và trong bước này, chúng tôi sẽ tạo SSL Letsencrypt bằng lệnh certbot. Ngoài ra, hãy đảm bảo rằng tên miền của bạn được phân giải thành địa chỉ IP của máy chủ.

Cài đặt công cụ certbot bằng lệnh apt bên dưới.
Mã:
sudo apt install certbot
Sau khi cài đặt hoàn tất, hãy dừng dịch vụ Nginx.
Mã:
systemctl stop nginx
certbot certonly --standalone --agree-tos --no-eff-email --email [emailprotected] -d magento.hakase-labs.io
Sau khi hoàn tất, bạn sẽ nhận được chứng chỉ SSL tại thư mục '/etc/letsencrypt/live/magento.your-domain.com'.

Kết quả là cài đặt SSL Letsencrypt cho Magento 2 đã được tạo.

Bước 7 - Thiết lập Nginx Virtualhost cho Magento 2​

Trong bước này, chúng ta sẽ thêm cấu hình máy chủ ảo Nginx mới cho Magento 2.

Đi tới thư mục '/etc/nginx/sites-available/' và tạo cấu hình mới 'magento' bằng trình soạn thảo vim.
Mã:
cd /etc/nginx/sites-available/
vim magento
Dán cấu hình sau vào đó.
Mã:
upstream fastcgi_backend {
 máy chủ unix:/run/php/php7.3-fpm.sock;
}

máy chủ {
 lắng nghe 80;
 lắng nghe [::]:80;
 tên máy chủ magento.hakase-labs.io;
 trả về 301 https://$server_name$request_uri;
}

máy chủ {

 lắng nghe 443 ssl http2;
 tên máy chủ magento.hakase-labs.io;

 chứng chỉ ssl /etc/letsencrypt/live/magento.hakase-labs.io/fullchain.pem;
 khóa chứng chỉ ssl /etc/letsencrypt/live/magento.hakase-labs.io/privkey.pem;

 thiết lập $MAGE_ROOT /var/www/magento2;
 set $MAGE_MODE developer;
 include /var/www/magento2/nginx.conf.sample;
}
Lưu và đóng.

Tiếp theo, kích hoạt máy chủ ảo Magento Nginx và kiểm tra cấu hình nginx, đảm bảo không có lỗi.
Mã:
ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
nginx -t
Bây giờ hãy khởi động lại dịch vụ Nginx bằng lệnh sau.
Mã:
systemctl restart nginx
Kết quả là cấu hình máy chủ ảo Nginx cho Magento 2 đã được tạo và kích hoạt.


Bước 8 - Hậu cài đặt Magento​

Mở trình duyệt web của bạn và nhập Magento tên miền cài đặt trên thanh địa chỉ.


Bây giờ bạn sẽ được chuyển hướng đến kết nối bảo mật HTTPS và bạn sẽ nhận được trang chào mừng Magento và Điều khoản dịch vụ.



Nhấp vào nút 'Đồng ý và thiết lập Magento' để tiếp tục.

Trên trang 'Kiểm tra mức độ sẵn sàng', hãy đảm bảo tất cả các yêu cầu đều có màu xanh lá cây và nhấp vào nút 'Tiếp theo'.



Nhập thông tin chi tiết về cơ sở dữ liệu MariaDB và người dùng mà chúng ta đã tạo ở trên và nhấp vào 'Tiếp theo'.



Đối với 'Cấu hình web', hãy thay đổi tất cả giao thức HTTP thành HTTPS và đảm bảo thay đổi 'Địa chỉ quản trị Magento'.



Bây giờ hãy nhấp vào 'Tùy chọn nâng cao' và đánh dấu tất cả các tùy chọn HTTPS, sau đó bỏ chọn tùy chọn 'Ghi đè Apache' và nhấp vào 'Tiếp theo' nút một lần nữa.

Tiếp theo, trên cấu hình 'Tùy chỉnh cửa hàng của bạn' của Magento, hãy để nguyên mặc định và nhấp vào nút 'Tiếp theo'.



Bây giờ hãy nhập thông tin chi tiết về người dùng quản trị, email và mật khẩu. Sau đó nhấp vào nút Tiếp theo.



Nhấp vào nút 'Cài đặt ngay' để cài đặt cửa hàng Magento 2 của bạn.



Bây giờ hãy đảm bảo rằng mọi cài đặt không có lỗi.



Sau khi mọi cài đặt hoàn tất, bạn sẽ nhận được trang 'Thành công' như bên dưới.



Nhấp vào 'Khởi chạy Magento Admin' để đăng nhập vào Bảng điều khiển quản trị Magento của bạn.



Bây giờ hãy nhập tên người dùng và mật khẩu Magento Admin của bạn, sau đó nhấp vào 'Đăng nhập' và bạn sẽ nhận được Bảng điều khiển quản trị Magento như bên dưới.



Đối với trang chỉ mục mặc định của Magento, hãy mở tab mới và nhập tên miền của bạn vào thanh địa chỉ.

Dưới đây là trang chỉ mục mặc định của Magento.



Kết quả là quá trình cài đặt Magento 2 đã hoàn tất.

Tiếp theo, Quay lại shell máy chủ của bạn và chúng tôi sẽ thiết lập Magento Cron và xóa quyền ghi của một số thư mục cài đặt Magento.

Để thiết lập Magento cron, hãy chạy lệnh bên dưới.
Mã:
cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --force
Cron Magento sẽ chạy dưới người dùng 'www-data', hãy kiểm tra bằng lệnh sau.
Mã:
crontab -u www-data -l
Kết quả là Magento Cron đã được thêm vào hệ thống.



Tiếp theo, chúng ta cần xóa quyền ghi của thư mục '/var/www/magento2/app/etc'.

Chạy lệnh chmod bên dưới.
Mã:
chmod u-w /var/www/magento2/app/etc
Và cuối cùng, cài đặt Magento 2 với Máy chủ web Nginx, máy chủ MariaDB, PHP-FPM 7.3 trên Ubuntu 20.04 mới nhất đã hoàn tất thành công.

Tham khảo​

 
Back
Bên trên