Cách cài đặt Magento eCommerce Platform trên Ubuntu 24.04

theanh

Administrator
Nhân viên
Magento là một nền tảng thương mại điện tử mã nguồn mở và nổi tiếng được viết bằng PHP. Magento là một giải pháp thương mại điện tử mạnh mẽ và mạnh mẽ được hơn 240.000 thương gia trên toàn thế giới sử dụng. Magento là một nền tảng linh hoạt và có thể mở rộng để xây dựng một cửa hàng thương mại điện tử. Nó phù hợp để xây dựng các cửa hàng trực tuyến nhỏ, vừa và lớn. Magento cho phép bạn tạo và lưu trữ các cửa hàng trực tuyến trên máy chủ của mình.

Trong hướng dẫn này, chúng tôi sẽ hướng dẫn bạn cài đặt Magento eCommerce trên máy chủ Ubuntu 22.04.

Điều kiện tiên quyết​

Để bắt đầu với hướng dẫn này, hãy đảm bảo bạn đã chuẩn bị những thứ sau:
  • Ubuntu 24.04 có ít nhất 4GB bộ nhớ.
  • Người dùng không phải root có quyền sudo.
  • Tên miền trỏ đến địa chỉ IP của máy chủ.

Cài đặt các phụ thuộc​

Trước khi chuyển sang phần cài đặt, bạn phải đảm bảo rằng các phụ thuộc của Magento đã được cài đặt. Trong phần này, bạn sẽ cài đặt các gói phần mềm cho Magento, bao gồm OpenSearch, Nginx, máy chủ MySQL, PHP-FPM, Redis, Composer và Git.

Trước tiên, hãy cài đặt các gói 'apt-transport-https' và 'gnupg' với nội dung sau:
Mã:
sudo apt install apt-transport-https gnupg -y
Chạy lệnh sau để thêm khóa GPG OpenSearch và kho lưu trữ cho các bản phân phối dựa trên Debian/Ubuntu.
Mã:
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | \
sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring
Mã:
echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | \
sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

1-add-repo-opensearch.png



Bây giờ hãy cập nhật chỉ mục gói Ubuntu của bạn và cài đặt các phần phụ thuộc bằng lệnh apt sau. Với lệnh này, bạn sẽ cài đặt các gói OpenSearch, Nginx, MySQL, PHP-FPM, Redis, Composer và Git.
Mã:
sudo apt update && sudo apt install opensearch nginx mysql-server composer git redis-server php-fpm php-bcmath php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql php-cli php-redis php-ldap php-zip php-curl php-imagick
Nhập Y để xác nhận cài đặt.


2-install-deps.png



Sau khi cài đặt, hãy kiểm tra tất cả các dịch vụ để đảm bảo dịch vụ đang chạy.

Kiểm tra dịch vụ Nginx bằng lệnh sau. Bạn sẽ thấy dịch vụ Nginx đang chạy và được bật.
Mã:
sudo systemctl is-enabled nginx
sudo systemctl status nginx

3-check-nginx.png



Bây giờ hãy kiểm tra máy chủ MySQL bằng lệnh bên dưới. Bạn có thể thấy trong kết quả đầu ra bên dưới rằng máy chủ MySQL đang chạy.
Mã:
sudo systemctl is-enabled mysql
sudo systemctl status mysql

6-check-mysql-server.png



Kiểm tra dịch vụ PHP-FPM bằng lệnh sau. PHP-FPM sẽ chạy và được tự động kích hoạt.
Mã:
sudo systemctl is-enabled php8.3-fpm
sudo systemctl status php8.3-fpm

4-check-php-fpm.png



Kiểm tra máy chủ Redis bằng lệnh bên dưới. Bạn sẽ thấy Redis đang chạy và được bật.
Mã:
sudo systemctl is-enabled redis-server
sudo systemctl status redis-server

5-check-redis.png



Cuối cùng, hãy kiểm tra phiên bản Composer bằng lệnh sau. Bạn nên cài đặt Composer v2.7 trên hệ thống của mình.
Mã:
sudo -u www-data composer -v

7-check-composer.png


Thiết lập OpenSearch​

Sau khi bạn đã cài đặt các phụ thuộc, bạn cần cấu hình OpenSearch. Magento đã sử dụng OpenSearch để tìm kiếm nâng cao pri=ducts và lập chỉ mục. Trong phần này, bạn sẽ tăng bộ nhớ heap tối đa mặc định và vô hiệu hóa plugin bảo mật của OpenSearch (chỉ dành cho môi trường phát triển).

Mở tệp '/etc/opensearch/jvm.options' bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/opensearch/jvm.options
Thay đổi phân bổ bộ nhớ mặc định cho OpenSearch theo nhu cầu của bạn. Trong trường hợp này, chúng tôi sẽ sử dụng 2GB cho OpenSearch.
Mã:
-Xms2g
-Xmx2g
Lưu tệp và thoát.

Bây giờ hãy mở cấu hình OpenSearch mặc định '/etc/opensearch/opensearch.yml' bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/opensearch/opensearch.yml
Thêm cấu hình sau để vô hiệu hóa plugin bảo mật trong OpenSearch. Để trình diễn, bạn có thể vô hiệu hóa tùy chọn này, nhưng để sản xuất, bạn phải bật plugin bảo mật và thiết lập chứng chỉ TLS cho cài đặt OpenSearch của mình.
Mã:
plugins.security.disabled: true
Khi hoàn tất, hãy lưu và thoát tệp.

Tiếp theo, chạy lệnh bên dưới để tải lại trình quản lý systemd. Sau khi cài đặt OpenSearch, bạn phải tải lại trình quản lý systemd.
Mã:
sudo systemctl daemon-reload
Bây giờ hãy khởi động, bật và xác minh dịch vụ Opensearch bằng lệnh sau:
Mã:
sudo systemctl enable --now opensearch
sudo systemctl status opensearch
Trong kết quả sau, bạn có thể thấy OpenSearch đang chạy và được bật.


8-check-opensearch.png



Cuối cùng, hãy kiểm tra cài đặt OpenSearch của bạn bằng lệnh 'curl' sau. Phần này sẽ hiển thị cho bạn thông tin cơ bản về cài đặt OpenSearch của bạn.
Mã:
curl -X GET http://localhost:9200
Dưới đây, bạn có thể thấy OpenSearch 2.14 đang chạy trên máy chủ Ubuntu.


9-test-opensearch.png


Thiết lập PHP-FPM​

Trong phần này, bạn sẽ sửa đổi cấu hình PHP-FPM mặc định và kích hoạt tiện ích mở rộng Opcache thông qua tệp 'php.ini'. Bạn sẽ tăng memory_limit mặc định và điều chỉnh tùy chọn date.timezone.

Mở cấu hình PHP-FPM '/etc/php/8.3/fpm/php.ini' bằng trình chỉnh sửa nano sau.
Mã:
sudo nano /etc/php/8.3/fpm/php.ini
Thay đổi cấu hình mặc định bằng lệnh sau. Ngoài ra, hãy điều chỉnh date.timezonememory_limit theo môi trường máy chủ hiện tại của bạn.
Mã:
date.timezone = Europe/Amsterdam
Khi hoàn tất, hãy lưu tệp và thoát.

Bây giờ hãy chạy lệnh bên dưới để khởi động lại dịch vụ PHP-FPM và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart php8.3-fpm

Thiết lập máy chủ MySQL​

Bây giờ bạn đã cấu hình PHP-FPM, trong phần tiếp theo, bạn sẽ thiết lập cài đặt máy chủ MySQL và tạo cơ sở dữ liệu và người dùng mới cho Magento.

Bảo mật cài đặt máy chủ MySQL của bạn bằng cách thực hiện lệnh bên dưới.
Mã:
sudo mysql_secure_installation
Bên dưới, bạn sẽ được hỏi về cấu hình máy chủ MySQL:
  • Nhập y để bật thành phần VALIDATE PASSWORD.
  • Nhập 1 để thiết lập mức độ mạnh của mật khẩu thành MEDIUM.
  • Nhập y khi được yêu cầu thay đổi mật khẩu gốc MySQL của bạn.
  • Nhập y để xóa ẩn danh mặc định user.
  • Nhập y để không cho phép đăng nhập từ xa đối với người dùng root MySQL.
  • Nhập y một lần nữa để xóa kiểm tra cơ sở dữ liệu mặc định khỏi MySQL.
  • Cuối cùng, nhập y để tải lại các đặc quyền bảng MySQL áp dụng các thay đổi.
Sau khi bạn đã cấu hình MySQL, bạn cần tạo một cơ sở dữ liệu và người dùng mới cho Magento.

Đăng nhập vào máy chủ MySQL bằng lệnh sau. Nhập mật khẩu root MySQL của bạn khi được nhắc.
Mã:
sudo mysql -u root -p
Bây giờ hãy chạy các truy vấn sau để tạo một cơ sở dữ liệu và người dùng mới cho Magento. Trong ví dụ này, bạn sẽ tạo một người dùng và cơ sở dữ liệu mới 'magento' với mật khẩu 'M4gentoPassw0rd__'.

Hãy đảm bảo thay đổi các thông tin chi tiết sau bằng thông tin của bạn. Ngoài ra, mật khẩu MySQL cho Magento phải có ký tự đặc biệt, số và chữ hoa.
Mã:
CREATE DATABASE magento;
CREATE USER 'magento'@'localhost' IDENTIFIED BY 'M4gentoPassw0rd__';
GRANT ALL PRIVILEGES ON magento.* to 'magento'@'localhost';
FLUSH PRIVILEGES;

11-create-database.png



Tiếp theo, chạy truy vấn sau để xác minh quyền cho người dùng 'magento'. Đảm bảo người dùng của bạn có thể truy cập cơ sở dữ liệu 'magento'.
Mã:
SHOW GRANTS FOR magento@localhost;
Cuối cùng, nhập quit để thoát khỏi máy chủ MySQL.


12-show-privileges.png


Cài đặt Magento thông qua dòng lệnh​

Trong phần này, bạn sẽ tải xuống mã nguồn Magento và cài đặt các phụ thuộc PHP bằng Composer. Sau đó, bạn sẽ cài đặt Magento bằng dòng lệnh. Cuối cùng, bạn sẽ tạo một crontab cho Magento.

Truy cập thư mục '/var/www' và tải xuống mã nguồn Magento bằng lệnh wget sau. Kiểm tra trang GitHub Magento và lấy URL phiên bản Magento mới nhất.
Mã:
cd /var/www
wget https://github.com/magento/magento2/archive/refs/tags/2.4.7.tar.gz
Sau khi tải xuống 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 'magento2'. Với lệnh này, cài đặt Magento của bạn sẽ nằm tại '/var/www/magento2'.
Mã:
tar -xf 2.4.7.tar.gz
mv magento2-* magento2
Bây giờ hãy chạy lệnh bên dưới để tạo các thư mục bổ sung cho Composer và thay đổi quyền sở hữu thư mục '/var/www' thành người dùng 'www-data'.
Mã:
sudo mkdir -p /var/www/{.config,.cache}
sudo chown -R www-data:www-data /var/www
Sau đó, chạy lệnh sau để cấp cho người dùng 'www-data' quyền đọc, ghi và thực thi trong thư mục '/var/www/magento2'.
Mã:
sudo chmod u+rwx /var/www/magento2
Tiếp theo, hãy chuyển đến Thư mục '/var/www/magento2' và cài đặt các phụ thuộc PHP cho Magento bằng lệnh Composer bên dưới. Điều này sẽ đảm bảo các phụ thuộc của bạn cho Magento được cài đặt
Mã:
cd /var/www/magento2
sudo -u www-data composer install
Sau khi cài đặt các phụ thuộc, hãy chạy lệnh bên dưới để cấp quyền cho người dùng 'www-data' của 'rwx' cho cả thư mục 'generated' và 'var' trong web Magento root.
Mã:
sudo chown -R www-data:www-data /var/www/magento2/var /var/www/magento2/generated
sudo chmod u+rwx /var/www/magento2/var /var/www/magento2/generated
sudo chmod g+rw /var/www/magento2/var /var/www/magento2/generated
Bây giờ hãy chạy lệnh sau để bắt đầu cài đặt Magento. Đảm bảo thay đổi thông tin chi tiết về URL, cơ sở dữ liệu MySQL, người dùng quản trị và mật khẩu cho cài đặt Magento của bạn.
Mã:
sudo -u www-data bin/magento setup:install \
--base-url=http://howtoforge.local \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento \
--db-password=M4gentoPassw0rd__ \
--admin-firstname=bob \
--admin-lastname=admin \
[emailprotected] \
--admin-user=bob \
--admin-password=BobAdm1nP4ssword \
--currency=USD \
--timezone=Europe/Amsterdam \
--use-rewrites=1 \
--session-save=redis \
--search-engine=opensearch \
--opensearch-host=127.0.0.1 \
--opensearch-port=9200 \
--opensearch-enable-auth=0 \
--opensearch-index-prefix=magento22 \
--opensearch-timeout=30
Bên dưới, bạn có thể thấy quá trình cài đặt Magento bắt đầu:


13-install-magento-cli.png



Sau khi hoàn tất, bạn sẽ thấy đầu ra 'Magento installation complete.' và đường dẫn URL quản trị cho cài đặt Magento của bạn. Đảm bảo lưu URL đã tạo cho trang quản trị Magento.


14-install-magento-success.png



Để hoàn tất cài đặt Magento, hãy chạy lệnh sau để tạo crontab cho Magento và chạy lập chỉ mục cho Magento.
Mã:
sudo -u www-data bin/magento cron:install
sudo -u www-data bin/magento cron:run --group index
Bạn có thể kiểm tra danh sách crontab cho người dùng 'www-data' bằng sau:
Mã:
crontab -u www-data -l
Bạn có thể thấy crontab cho Magento được tạo bên dưới.


19-magento-cron.png



Cuối cùng, hãy chạy lệnh bên dưới để xóa bộ nhớ đệm của cài đặt Magento. Với điều này, bạn đã hoàn tất cài đặt Magento, tiếp theo bạn cần thiết lập máy chủ web Nginx.
Mã:
sudo -u www-data bin/magento cache:clean

Thiết lập khối máy chủ Nginx​

Lúc này, quá trình cài đặt Magento của bạn đã hoàn tất, bây giờ bạn sẽ tạo một máy chủ Nginx mới để chạy cài đặt Magento của mình. Đảm bảo bạn có tên miền được trỏ đến địa chỉ IP máy chủ của mình.

Tạo cấu hình khối máy chủ Nginx mới '/etc/nginx/sites-available/magento.conf' bằng trình chỉnh sửa nano.
Mã:
sudo nano /etc/nginx/sites-available/magento.conf
Chèn cấu hình sau và đảm bảo thay đổi tùy chọn server_name bằng tên miền Magento của bạn.
Mã:
upstream fastcgi_backend {
 server unix:/run/php/php8.3-fpm.sock;
}

server {
 listen 80;
 listen [::]:80;
 server_name howtoforge.local;
 set $MAGE_ROOT /var/www/magento2/;
 include /var/www/magento2/nginx.conf.sample;
 client_max_body_size 2M;

 access_log /var/log/nginx/magento.access;
 error_log /var/log/nginx/magento.error;
}
Khi hoàn tất, hãy lưu và thoát khỏi tệp.

Bây giờ hãy chạy lệnh bên dưới để kích hoạt khối máy chủ 'magento.conf' và xác minh cú pháp Nginx của bạn. Đảm bảo bạn nhận được kết quả đầu ra 'cú pháp là ok - thử nghiệm là thành công'.
Mã:
sudo ln -s /etc/nginx/sites-available/magento.conf /etc/nginx/sites-enabled/
sudo nginx -t
Cuối cùng, khởi động lại dịch vụ Nginx bằng lệnh sau để áp dụng cấu hình khối máy chủ mới của bạn. Sau khi lệnh được thực thi, cài đặt Magento của bạn sẽ khả dụng.
Mã:
sudo systemctl restart nginx

15-test-nginx.png


Bảo mật Magento bằng HTTPS​

Nếu bạn đang chạy Magento trong miền công cộng, bạn phải bảo mật bằng HTTPS. Trong phần này, bạn sẽ bảo mật cài đặt Magento của mình bằng HTTPS thông qua Certbot và Letsencrypt.

Cài đặt plugin Certbot và Certbot Nginx bằng lệnh sau. Nhập Y để xác nhận cài đặt.
Mã:
sudo apt install certbot python3-certbot-nginx
Sau khi cài đặt hoàn tất, hãy chạy lệnh bên dưới để tạo chứng chỉ SSL/TLS từ Letsencrypt. Đảm bảo thay đổi địa chỉ email và tên miền bên dưới bằng thông tin của bạn.
Mã:
sudo certbot --nginx --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email [emailprotected] -d howtoforge.local
Cài đặt Magento của bạn sẽ được tự động bảo mật bằng HTTPS khi quá trình hoàn tất. Chứng chỉ SSL/TLS của bạn nằm trong thư mục '/etc/letsencrypt/live/domain.com'.

Truy cập Magento​

Mở trình duyệt web và truy cập tên miền Magento của bạn như https://howtoforge.local. Nếu cài đặt thành công, bạn sẽ thấy trang chỉ mục Magento mặc định như sau.


16-magento-home.png



Bây giờ, hãy truy cập URL quản trị Magento là https://howtoforge.local/admin_ze87mmj. Xem quy trình cài đặt.

Nhập tên người dùng và mật khẩu quản trị của bạn cho Magento và nhấn Đăng nhập.


17-login-magento.png



Nếu thành công, bạn sẽ nhận được bảng điều khiển quản trị Magento như sau:


18-magento-dashboard.png


Kết luận​

Xin chúc mừng! Bạn đã hoàn tất cài đặt Magento eCommerce trên máy chủ Ubuntu 24.04. Bạn đã cài đặt Magento với LEMP Stack (Linux, Nginx, MySQL và PHP-FPM), OpenSearch và Redis. Bạn cũng đã bảo mật Magento bằng HTTPS thông qua Certbot và Letsencrypt.
 
Back
Bên trên