Hướng dẫn cài đặt magento 2.4 trên Ubuntu 20.04, 22.04 hoặc Linux qua composer và cấu hình với Nginx (Full demo data). Trước đây ở các version cũ nhỏ hơn 2.4 có thể cài đặt Magento 2.x thông qua trình duyệt web, nhưng với phiên bản Magento 2.4, bạn chỉ có thể cài đặt nó qua Command Line Utility (CLI).
Hướng dẫn cài đặt Magento 2.4 trên Ubuntu 22.04 | 20.04 với Nginx
Bước 1. Yêu cầu cấu hình cài đặt Magento 2 trên Ubuntu 22.04 | 20.04 LTS
- Đã cài đặt thành công php7.4.
- Đã cài đặt thành công MySQL 8
- Đã cài đặt thành công Nginx.
- Đã cài đặt thành công Elasticsearch 7.x
Kể từ phiên bản magento 2.4 trở lên sẽ sử dụng Elasticsearch thay thế cho Mysql search, vì vậy bạn cần phải có một cấu hình hệ thống tương đối. (tham khảo: system requirements)
Bước 2. Hướng dẫn cách cài Magento 2 trên Ubuntu | Linux qua Composer
Kể từ khi Adobe mua lại công ty Magento thì một số cách cài đặt cũ tải file trực tiếp không còn được sử dụng, vì vậy bạn sẽ cần phải tải Magento 2 về máy thông qua composer.
- Link tham khảo: Cách cài đặt Composer trên Ubuntu 20.04 | 22.04 & Linux
Để có thể tải được source Magento 2 về bạn cũng cần phải tạo authentication keys, đăng nhập vào marketplace.magento.com, ở góc phải màn hình click My Profile->Access Keys

Bấm Create A New Access Key để tạo riêng Public Key
, Private Key
của bạn hoặc lấy ở đây.
Public Key: e545ff23ec1afdd58dc63fe033da0305 Private Key: a8fc48a73b9b1ab6f92cf2e50418b6a1
Tiếp tục cấu hình Composer với khóa xác thực:
composer global config http-basic.repo.magento.com <public-key> <private-key>

Tiếp theo, lựa chọn phiên bản Magento, sẽ có 2 phiên bản Open Source và Adobe Commerce, ở đây itsmeit sẽ cài Magento 2 Open Source qua composer trên hệ điều hành Ubuntu 22.04, 20.04 hoặc debian bằng các câu lệnh bên dưới.
Note: Vì bạn sử dụng máy chủ Nginx, các project thông thường nằm trong thư mục /var/www. ở đây ItsmeIT tạo ra thư mục /var/www/vhosts/magento2.4 và tải source vào đây. Đường dẫn thư mục này sẽ nằm trong file cấu hình Nginx ở bước 6 bên dưới. Tất nhiên bạn có thể thay đổi đường dẫn đúng với bạn.
sudo mkdir -p /var/www/vhosts/magento2.4 sudo chown -R itsmeit:www-data /var/www/vhosts/ cd /var/www/vhosts/magento2.4 composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.1
Nếu bạn chưa cấu hình composer thì bước này sẽ được hỏi public_key và private_key.

Magento 2 là một Framework rất đồ sộ cho nên hãy kiên nhẫn chờ composer download source về nhé.
Bước 3. Tạo database và username trong MYSQL
Trong khi chờ composer tải source về để cài đặt magento 2.4 trên Ubuntu 22.04, 20.04 hoặc debian hãy đăng nhập vào MYSQL và tạo username, database cho project.
sudo mysql
Hoặc:
sudo mysql -u root -p
Sau đó tạo một database mới
CREATE DATABASE magento2 CHARACTER SET utf8 COLLATE utf8_general_ci;
Tiếp theo, tạo một user mysql mới để quản lý database ở trên
CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'magento2@#$'; GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost'; FLUSH PRIVILEGES;
Bước 4. Hướng dẫn phân quyền cho thư mục và file trong Magento 2
Magento 2 là một framework được phát triển và hệ thống bảo mật chặt chẽ, vì vậy khi cài đặt và sử dụng Magento bạn cần thiết lập quyền (permisson) chính xác cho thư mục chứa source + file magento để không gặp phải các lỗi vặt khi cài đặt và sử dụng.
sudo find /var/www/vhosts/magento2.4/* -type f -exec chmod 644 {} + sudo find /var/www/vhosts/magento2.4/* -type d -exec chmod 755 {} + sudo chown -R $USER:www-data /var/www/vhosts/magento2.4/*
Đường dẫn chứa source magento của itsmeit là /var/www/vhosts/magento2.4/, hãy thay đổi nó theo của bạn.
Bước 5. Cài đặt magento 2.4 với CLI trên Ubuntu 22.04 | 20.04
Sau khi hoàn thành bước phân quyền, bây giờ bạn lần lượt chạy các lệnh bên dưới đây để cài đặt magento 2.4 trên ubuntu 20.04, 22.04 và Debian. Hãy kiểm tra user, database … trong câu lệnh bên dưới xem đã chính xác hay chưa rồi bắt đầu chạy lệnh trên terminal tại thư mục chứa source magento.
cd /var/www/vhosts/magento2.4/project-community-edition
bin/magento setup:install \ --base-url=http://dev.magento2.com/ \ --db-host=localhost \ --db-name=magento2 \ --db-user=magento2 \ --db-password=magento2@#$ \ --admin-firstname=admin \ --admin-lastname=admin \ --admin-email=itsmeit.biz@gmail.com \ --admin-user=admin \ --admin-password=admin123 \ --language=en_US \ --currency=USD \ --timezone=Asia/Ho_Chi_Minh \ --use-rewrites=1 \ --search-engine=elasticsearch7 \ --elasticsearch-host=localhost \ --elasticsearch-port=9200 \ --elasticsearch-index-prefix=magento2 \ --elasticsearch-timeout=15
Giải thích:
- –base-url: Là domain của bạn, nó bao gồm cả http hoặc https. Ở trên localhost có thể tạo bất kỳ tên nào miễn sao nó đúng định dạng, xem cấu hình ở bước 6, 7.
- –db-host: server mysql thông thường là localhost.
- –db-name: tên database đã tạo ở bước 4.
- –backend-frontname: khóa truy cập trang admin
- –db-user: tên user đã tạo ở bước 4.
- –db-password: password đã tạo ở bước 4.
- –admin-user: Username dùng để đăng nhập vào backend của trang web.
- –admin-password: Mật khẩu để đăng nhập vào phần backend trang web.
- – Elasticsearch kết nối trên cổng 9200
Nếu không có lỗi sẽ được kết quả như sau:


Backend frontName (http://dev.magento2.com/admin_fry53j), bạn cũng có thể xem lại và thay đổi trong app/etc/env.php
Bước 6. Hướng dẫn cấu hình Nginx cho Magento 2
Để cấu hình cài đặt magento 2.4 trên Ubuntu 22.04 | 20.04 LTS với Nginx, hãy tạo một file dev.magento.com.conf trong /etc/nginx/sites-available, file này nên đặt tên theo domain của bạn. Sau đó thêm vào nội dung dưới đây.
sudo nano /etc/nginx/sites-available/dev.magento.com.conf
upstream fastcgi_backend { server unix:/run/php/php7.4-fpm.sock; } server { listen 80; server_name dev.magento2.com www.dev.magento2.com; set $MAGE_ROOT /var/www/vhosts/magento2.4/project-community-edition; include /var/www/vhosts/magento2.4/project-community-edition/nginx.conf.sample; }

- upstream “unix”: Đường dẫn tới file php7.4-fpm
- server_name: domain của bạn
- $MAGE_ROOT: Đường dẫn đến thư mục chứa source magento đã tạo ở bước 2, khi bạn chạy composer nó sẽ tự tạo thêm 1 thư mục “project-community-edition”.
- include: Đường dẫn chính xác đến file nginx.conf.sample trong source chứa magento 2.
Bấm Ctrl + X chọn Y để lưu file và chạy lệnh dưới để reset lại nginx
sudo service nginx restart
Lưu ý trong khi cài đặt magento 2.4 trên Ubuntu 22.04 | 20.04 với Nginx:
- Nếu có lỗi khi thao tác với nginx thì chạy lệnh:
sudo nginx -t
để hiển thị lỗi và kiểm tra lại cấu hình. - Bạn có thể cần tham khảo thêm bài viết HD cách cấu hình Nginx
Bước 7. Hướng dẫn cấu hình tên miền/domain trên Localhost
Như bạn thấy ở các bước trên, domain được tạo ra khi cài đặt trang web magento 2.4 là dev.magento2.com vì vậy cần cấu hình nó trong file /etc/hosts. Mở file này và thêm vào cuối cùng:
sudo nano /etc/hosts
Hoàn thành cài đặt Magento 2.4 trên Ubuntu rồi, bạn có thể chạy website dev.magento2.com trên trình duyệt và đây là kết quả.

Bước 8. Fix lỗi login backend và chuyển magento sang dev mode.

Phiên bản magento 2.4.x chạy mặc định module Magento_TwoFactorAuth để tạo sercurity bạn có thể tắt nó tạm thời để truy cập backend, sau đó tìm hiểu và xác thực bảo mật Google Authenticator nếu cần thiết. (tham khảo)
Để làm điều này hãy mở terminal, cd đến thư mục chứa source magento và chạy lệnh disable module Magento_TwoFactorAuth và chuyển dev mode. Magento 2 có 3 chế độ là default, developer, production, nếu bạn đang build trang web thì chuyển developer, còn nếu trang web đã sẵn sàng để live thì chuyển production.
cd /var/www/vhosts/magento2.4/project-community-edition php bin/magento module:disable Magento_TwoFactorAuth php bin/magento deploy:mode:set developer php bin/magento cache:clean
Bạn cũng có mở file /app/etc/config.php tìm module Magento_TwoFactorAuth và chuyển giá trị thành số 0 sau đó chạy lệnh cache:clean để xóa cache.
Bước 9. Hướng dẫn cài đặt magento 2 sample data (Full demo)
Với những bước hướng dẫn ở trên thì bạn đã cài đặt Magento 2.4 trên Ubuntu 22.04, 20.04 hoặc debian thành công rồi phải không?. Nếu bạn muốn cài đặt thêm dữ liệu demo bao gồm page, product, category… thì có thể chạy câu lệnh dưới đây từ thư mục magento. Thời gian cài demo sẽ cần chút thời gian, hãy kiên nhẫn chờ đợi.
php bin/magento sampledata:deploy

Chờ sampledata được cài đặt thành công thì chạy tiếp câu lệnh upgrade để cập nhật source và database.
php bin/magento setup:upgrade

Bước 10. Hướng dẫn xóa/remove sample data magento 2.4
Để xóa bỏ dữ liệu mẫu (sample data) trên magento 2.4.x theo mình thì bạn nên backup thư mục, file app/code, env.php và cài lại một trang web magento 2.4 mới. Bởi vì câu lệnh xóa dữ liệu mẫu trong magento 2 nó chỉ xóa những module chứ không xóa các bảng trong database. Bạn cũng có thể chạy câu lệnh dưới đây để remove demo data. (tài liệu tham khảo)
php bin/magento sampledata:remove php bin/magento setup:upgrade
Trên đây là các bước hướng dẫn cài đặt magento 2.4 trên Ubuntu 20.04, 22.04 hoặc debian cũng như cách cấu hình magento 2 với Nginx. Hy vọng nó giúp ích cho bạn.
Tài liệu tham khảo: https://devdocs.magento.com/guides/v2.4/install-gde/prereq/nginx.html
– Advertising –