Hướng dẫn cài đặt Magento 2.4.2 trên Ubuntu

Mới đây Magento 2.4.2 đã được phát hành với rất nhiều cải tiến bảo mật, GraphQL đồng thời bao gồm hơn 280 lỗi đã được sửa chữa. Trong bài viết này mình sẽ hướng dẫn bạn cách cài đặt Magento 2.4.2 trên Ubuntu.

Thông tin và những lưu ý trước khi cài đặt Magento 2.4.2

Đây là những thay đổi của Magento 2.4.2 so với các phiên bản trước. Chúng ta cần biết trước khi cài đặt.

  • Magento 2.4.2 đã chuyển index.php vào thư mục /pub/ vì mục đích bảo mật.
  • Hỗ trợ Elasticsearch 7.9.x.
  • Tương thích với Varnish 6.4.
  • Hỗ trợ Redix 6.x.
  • Tương thích với Composer 2.x.

Các bước cài đặt Magento 2.4.2 trên Ubuntu

1. Cài đặt và cấu hình Apache

Mình đã có một bài hướng dẫn chi tiết bạn có thể tham khảo: Hướng dẫn cài đặt Apache trên Ubuntu 20.04.

2. Cài đặt MySQL

Tiến hành cài đặt MySQL bằng lệnh sau:

sudo apt install mysql-server

Khi được hỏi, hãy nhập “Y” để xác nhận cài đặt và sau đó nhấn ENTER.

Khi quá trình cài đặt hoàn tất, hãy chạy lệnh sau để bảo mật MySQL của bạn. Lệnh này sẽ loại bỏ một số cài đặt mặc định không an toàn và chặn quyền truy cập vào hệ thống cơ sở dữ liệu của bạn.

sudo mysql_secure_installation

Khi được hỏi, nhập “Y” để thiết lập.

Tiếp theo, chọn cấp độ xác thực mật khẩu. Nhập mật khẩu gốc của bạn. Máy chủ sẽ hiển thị độ mạnh yếu mật khẩu gốc bạn vừa nhập và sẽ hỏi bạn có muốn tiếp tục với mật khẩu đó hay không. Nếu bạn chấp nhận, hãy nhấn “Y”.

Đối với các câu hỏi còn lại, hãy bấm “Y” và ENTER ở mỗi lời nhắc.

Chờ cho tới khi hoàn tất, bạn kiểm tra đăng nhập vào MySQL bằng user root với lệnh:

sudo mysql

Bạn sẽ thấy như sau:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 807
Server version: 8.0.23-0ubuntu0.20.04.1 (Ubuntu)
  
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
  
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
  
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  
mysql> 

Sau đó, thoát khỏi bảng điều khiển MySQL bằng lệnh:

exit

2.1. Cấu hình quyền truy cập mật khẩu cho tài khoản Root MySQL

Đăng nhập với user root, chạy lần lượt lệnh:

sudo mysql
SELECT user,authentication_string,plugin,host FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mat-khau-cua-ban';

Lưu ý: Bạn hãy nhập mật khẩu của mình tại ‘mat-khau-cua-ban’.

Xác minh bảng mysql.user bằng lệnh:

SELECT user,authentication_string,plugin,host FROM mysql.user;
exit

2.2. Tạo người dùng MySQL mới cho Magento 2

Đăng nhập với người dùng root, chạy lần lượt các lệnh:

mysql -u root -p
SELECT user,authentication_string,plugin,host FROM mysql.user;
CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'mat-khau-cua-ban';
ALTER USER 'magento2'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mat-khau-cua-ban';

Cấp tất cả các đặc quyền cho user magento2:

GRANT ALL PRIVILEGES ON *.* TO 'magento2'@'localhost' WITH GRANT OPTION;
SELECT user,authentication_string,plugin,host FROM mysql.user;
exit

2.3. Tạo cơ sở dữ liệu Magento 2

Dùng các lệnh sau để tạo database Magento 2:

mysql -u magento2 -p
CREATE DATABASE magento2;
exit

3. Cài đặt PHP 7.4

Cập nhật kho lưu trữ APT của bạn:

sudo apt update

Cài đặt PHP 7.4 và các gói bằng lệnh:

sudo apt install php7.4 libapache2-mod-php php-mysql

Cài đặt xong, hãy xác minh phiên bản PHP của bạn:

php -v

Kết quả hiện ra sẽ là:

PHP 7.4.3 (cli) (built: Oct  6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Tiếp theo, chúng ta sẽ chỉnh sửa file /etc/apache2/mods-enabled/dir.conf với lệnh:

sudo nano /etc/apache2/mods-enabled/dir.conf

Kết quả hiện ra, bạn sẽ để ý tới vị trí của index.php.

trước khi sửa index.php - Cài đặt Magento 2.4.2 trên Ubuntu

Sau đó, tiến hành chuyển index.php lên vị trí đầu tiên. Khi đó file dir.conf sẽ như sau:

<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
  
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Sau khi đổi vị trí index.php - Cài đặt Magento 2.4.2 trên Ubuntu

Bước tiếp theo, chúng ta sẽ cài đặt và bật mbstring extension. Chạy lần lượt các lệnh:

sudo apt install php7.4-mbstring
sudo phpenmod mbstring

Bật Apache rewrite module:

sudo a2enmod rewrite

Cài module php cho Magento 2.4.2

sudo apt install php7.4-bcmath php7.4-intl php7.4-soap php7.4-zip php7.4-gd php7.4-json php7.4-curl php7.4-cli php7.4-xml php7.4-xmlrpc php7.4-gmp php7.4-common

Sau cùng, tải lại Apache để các thay đổi có hiệu lực.

sudo systemctl reload apache2

4. Cài đặt Elasticsearch

Đầu tiên, cài đặt OpenJDK 11 bằng lệnh:

sudo apt install openjdk-11-jdk

Hãy kiểm tra phiên bản java bằng lệnh:

java -version

Tiến hành cài đặt Elasticsearch:

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt update
sudo apt-get install elasticsearch=7.9.3

4.1. Cấu hình Elasticsearch

Đầu tiên, bạn chạy lệnh:

sudo a2enmod proxy && sudo a2enmod proxy_http && sudo service apache2 restart

Sau đó, tạo tệp máy chủ ảo mới cho proxy Elasticsearch:

sudo nano /etc/apache2/ports.conf

Thêm “Listen 8080” vào tệp máy chủ ảo, sau khi thêm sẽ như sau:

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf
  
Listen 80
Listen 8080 //After Add Listen 8080
  
<IfModule ssl_module>
        Listen 443
</IfModule>
  
<IfModule mod_gnutls.c>
        Listen 443
</IfModule>
  
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Tiếp theo tạo tệp có tên theo dạng domain-của-bạn-elasticsearch.conf, bằng lệnh:

sudo nano /etc/apache2/sites-available/domain-cua-ban-elasticsearch.conf

Sửa đổi tệp trên thành đoạn code dưới đây:

<VirtualHost *:8080>
    ProxyPass "/" "http://localhost:9200/"
    ProxyPassReverse "/" "http://localhost:9200/"
</VirtualHost>

Bây giờ, cổng Elasticsearch là 8080. Hãy ghi nhớ điều này, chúng ta sẽ sử dụng nó trong câu lệnh cài đặt Magento 2.4.2.

sudo a2ensite domain-cua-ban-elasticsearch
sudo service apache2 restart

Khởi động và kích hoạt Elasticsearch.

sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch

Xác minh proxy Elasticsearch với cổng 8080 bằng lệnh:

curl -i http://localhost:8080/_cluster/health

5. Cài đặt Composer 2

Di chuyển trở lại thư mục gốc.

cd ~

Tải và cài đặt Composer với lần lượt các lệnh:

curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/bin --filename=composer

Bạn sẽ thấy như sau:

All settings correct for using Composer
Downloading...
  
Composer (version 2.0.13) successfully installed to: /usr/bin/composer
Use it: php /usr/bin/composer

Để kiểm tra Composer 2 đã được cài đặt trong Ubuntu hay chưa, sử dụng lệnh:

composer

Nếu đã được cài đặt thành công, bạn sẽ thấy như sau:

   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.0.13 2021-04-27 13:11:08
  
Usage:
  command [options] [arguments]
  
Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
...

6. Tải Magento 2.4.2

Di chuyển tới thư mục html với lệnh:

cd /var/www/html

Tạo một Composer project mới, bạn có thể chọn Magento Open Source hoặc Magento Commerce.

Magento Open Source

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition <ten-thu-muc-cai-dat>

Ví dụ:

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2

Tiếp theo, tải xuống Magento 2 Open Source:

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=<phien-ban-magento> <ten-thu-muc-cai-dat>

Ví dụ:

composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition=2.4.2-p1 magento2

Magento Commerce

Tương tự như trên.

composer create-project --repository-url=https://repo.magento.com/ magento/project-enterprise-edition <ten-thu-muc-cai-dat>

Tải xuống Magento 2 Commerce:

composer create-project --repository-url=https://repo.magento.com/ magento/project-enterprise-edition=<phien-ban-magento> <ten-thu-muc-cai-dat>

6.1. Xét quyền đối với tệp

Để xét quyền, bạn chạy lần lượt từng lệnh sau:

cd /var/www/html/<thu-muc-cai-dat-magento>
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chown -R :www-data .
chmod u+x bin/magento

7. Cài đặt Magento 2.4.2

Di chuyển tới thư mục cài đặt Magento 2.

cd /var/www/html/<thu-muc-cai-dat-magento>

Sử dụng một lệnh dưới đây để cài đặt Magento 2.4.2:

php bin/magento setup:install \
--base-url=<domain-cua-ban> \
--db-host=localhost \
--db-name=magento2 \
--db-user=magento2 \
--db-password=<mat-khau-database-cua-magento2-user> \
--admin-firstname=Admin \
--admin-lastname=Admin \
[email protected] \
--admin-user=admin \
--admin-password=<mat-khau-admin> \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--search-engine=elasticsearch7 \
--elasticsearch-host=localhost \
--elasticsearch-port=8080

Bạn có thể tùy chỉnh các thuộc tính theo mong muốn ở lệnh cài đặt và chờ cho đến khi cài đặt thành công.

8. Thay đổi DocumentRoot thành Pub

Bạn có thể đọc tài liệu chi tiết từ Magento: https://devdocs.magento.com/guides/v2.4/install-gde/tutorials/change-docroot-to-pub.html.

Nếu bạn nối tên thư mục vào tên máy chủ hoặc địa chỉ IP của máy chủ để tạo ra URL khi bạn cài đặt Magento (ví dụ: http://<ip-cua-ban>/magento2 hoặc http://<sever-hostname-cua-ban>/magento2 ), bạn sẽ cần phải xóa nó.

8.1. Chỉnh sửa tệp máy chủ ảo

Chạy lệnh:

sudo nano /etc/apache2/sites-available/000-default.conf

Thêm đường dẫn đến pub/ trong thư mục Magento vào DocumentRoot, như sau:

<VirtualHost *:80>
  
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/magento2/pub
  
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
  
        <Directory "/var/www/html">
                    AllowOverride all
        </Directory>
</VirtualHost>

Khởi động lại Apache để có hiệu lực:

sudo systemctl restart apache2

8.2. Cập nhật URL base

Đăng nhập với user magento2:

mysql -u magento2 -p

Chỉ định cơ sở dữ liệu Magento bạn đã tạo khi cài đặt Magento:

use magento2

Cập nhật URL:

Cho IP:

UPDATE core_config_data SET value='http://<ip-cua-ban>' WHERE path='web/unsecure/base_url';

Cho Hostname:

UPDATE core_config_data SET value='http://<server-hostname-cua-ban>' WHERE path='web/unsecure/base_url';

8.3. Cập nhật file env.php

Di chuyển tới file env.php:

sudo nano /var/www/html/magento2/app/etc/env.php

Thêm đoạn dưới đây cần có trong file:

'directories' => [
    'document_root_is_pub' => true
]

8.4. Chuyển đổi chế độ

Đi tới thư mục cài đặt Magento 2:

cd /var/www/html/magento2

Chuyển sang chế độ production bằng lệnh:

php bin/magento deploy:mode:set production
php bin/magento cache:flush

Làm mới lại trình duyệt của bạn và đảm bảo rằng storefront hiển thị chính xác.

Chuyển sang chế độ developer:

php bin/magento deploy:mode:set developer
php bin/magento cache:flush

Tương tự, làm mới trình duyệt của bạn và xác minh rằng storefront hiển thị chính xác.

Lưu ý: Nếu bạn thấy storefront hiển thị lỗi 500 internal server error, vui lòng thiết lập quyền cho tệp Magento 2 để fix theo bài viết: Hướng dẫn fix lỗi 500 Internal Server Error trong Magento 2.

9. Cấp quyền cho các thư mục

Ở bước này bạn sẽ phải cấp quyền cho các thư mục bằng các lệnh sau:

chmod -R 777 var
chmod -R 777 pub/static
chmod -R 777 generated
chmod -R 777 generated/

10. Kiểm tra kết quả

Đừng quên chạy các lệnh sau:

php bin/magento s:up
php bin/magento s:s:d -f
php bin/magento c:f

Lưu ý: Nếu bạn gặp lỗi “Failed to send the message. Please contact the administrator” ở trang admin, bạn cần tắt module Two-Factor Authorization bằng lệnh:

php bin/magento module:disable Magento_TwoFactorAuth

Như vậy là chúng ta đã cài đặt thành công Magento 2.4.2 trên Ubuntu. Đây là kết quả:

Bài viết này khá dài, nên bạn hãy đọc thật kỹ và làm đủ các bước để tránh phát sinh lỗi trong quá trình cài đặt Magento 2.4.2.

Chúc bạn cài đặt thành công.

Nếu bạn có bất kỳ thắc mắc nào hãy comment phía bên dưới và chờ đợi approve kèm lời giải đáp.

Tham khảo thêm các bài Hướng dẫn Magento 2.

4.8 5 votes
Article Rating

Callula Huy

Callula is the Marketing Executive at Magetop. With more than 5 years of copywriting under her belt, Callula is into creating valuable content that is straight to the point. Life student. Workaholic. Foreign languages and traveling aficionado.

Leave a Reply or put your Question here

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x