Magento là một nền tảng thương mại điện tử mã nguồn mở được viết bằng PHP. Nó đã được Adobe mua lại vào năm 2018. Nó cũng được cung cấp dưới dạng sản phẩm thương mại và dựa trên đám mây. Bạn có thể sử dụng Magento để tạo các trang web mua sắm chuyên nghiệp có dung lượng cao. Nó cung cấp cả hai chế độ - một cửa hàng đơn lẻ và nhiều cửa hàng. Nó đi kèm với nhiều mô-đun để mở rộng chức năng của nó.
Trong hướng dẫn này, chúng tôi sẽ cài đặt phiên bản cộng đồng mã nguồn mở Magento. Nó cung cấp tất cả các chức năng bạn cần để thiết lập một cửa hàng trực tuyến chuyên nghiệp. Chúng tôi cũng sẽ cài đặt Elasticsearch để tìm kiếm qua danh mục sản phẩm, Redis cho bộ đệm tệp và phiên, và phục vụ nó bằng máy chủ Nginx.
[*]
Một số gói mà hệ thống của bạn cần.
Một số gói này có thể đã được cài đặt trên hệ thống của bạn.
Kiểm tra xem tường lửa có đang chạy không.
Bạn sẽ thấy nội dung tương tự như sau.
Cho phép các cổng HTTP và HTTPS như tốt.
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy một đầu ra.
Để luôn sử dụng phiên bản PHP mới nhất hoặc nếu bạn muốn cài đặt nhiều phiên bản PHP, hãy thêm kho lưu trữ PHP của Ondrej.
Đầu tiên, hãy nhập kho lưu trữ PHP GPG của Sury key.
Thêm kho lưu trữ PHP của Ondrej Sury.
Cập nhật kho lưu trữ hệ thống danh sách.
Tiếp theo, cài đặt PHP và các tiện ích mở rộng của nó theo yêu cầu của Magento.
Xác minh cài đặt.
Chạy các lệnh sau để tải xuống tệp nhị phân Composer. Magento yêu cầu Composer 2.2 LTS nên chúng tôi đã sửa đổi lệnh cho phù hợp.
Cài đặt Composer bằng cách di chuyển tệp nhị phân đến
Xác minh cài đặt bằng cách kiểm tra phiên bản của nó.
Kiểm tra phiên bản MySQL.
Hiện tại, phiên bản MariaDB này không được Magento hỗ trợ và gói MariaDB chính thức cho Debian 12 hiện không khả dụng. Vì vậy, chúng tôi sẽ tiếp tục cài đặt và sử dụng giải pháp thay thế sau để bỏ qua hạn chế.
Chạy tập lệnh cài đặt an toàn MariaDB.
Bạn sẽ được yêu cầu nhập mật khẩu root. Nhấn Enter vì chúng tôi chưa đặt bất kỳ mật khẩu nào cho nó.
Tiếp theo, bạn sẽ được hỏi xem bạn có muốn chuyển sang phương pháp xác thực socket Unix không. Plugin
Tiếp theo, bạn sẽ được hỏi xem bạn có muốn thay đổi mật khẩu root của mình không. Trên Debian 12, mật khẩu root gắn chặt với việc bảo trì hệ thống tự động, vì vậy bạn nên để nguyên. Nhập
Tiếp theo, bạn sẽ được hỏi một số câu hỏi nhất định để cải thiện tính bảo mật của MariaDB. Nhập Y để xóa người dùng ẩn danh, không cho phép đăng nhập root từ xa, xóa cơ sở dữ liệu thử nghiệm và tải lại các bảng đặc quyền.
Bạn có thể vào shell MariaDB bằng cách nhập
Tạo cơ sở dữ liệu cho Magento.
Tạo tài khoản người dùng SQL.
Cấp tất cả các quyền trên cơ sở dữ liệu cho người dùng.
Vì chúng ta không sửa đổi người dùng gốc, bạn nên tạo một người dùng SQL khác để thực hiện các tác vụ quản trị sử dụng xác thực mật khẩu. Chọn một mật khẩu mạnh cho người dùng này.
Xóa quyền người dùng.
Thoát khỏi shell.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt. Trên hệ thống Debian, lệnh sau chỉ hoạt động với
Khởi động Nginx máy chủ.
Kiểm tra trạng thái dịch vụ.
Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
Kiểm tra xem Certbot có hoạt động bình thường không.
Chạy lệnh sau để tạo SSL Chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo nhóm Diffie-Hellman chứng chỉ.
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Nhập khóa GPG của Elasticsearch.
Thêm kho lưu trữ Elasticsearch.
Cập nhật danh sách kho lưu trữ của hệ thống.
Cài đặt Elasticsearch.
Elasticsearch sử dụng rất nhiều bộ nhớ. Bạn cần giới hạn mức sử dụng của nó tùy thuộc vào kích thước máy chủ của bạn. Tạo tệp
Dán mã sau vào đó. Sửa đổi các giá trị theo kích thước máy chủ của bạn. Giá trị đầu tiên đề cập đến bộ nhớ ban đầu và giá trị thứ hai đề cập đến bộ nhớ khả dụng tối đa. Đối với 1GB trở lên, hãy sử dụng định dạng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Thao tác này sẽ định cấu hình Elasticsearch để sử dụng 1GB RAM. Bạn có thể sử dụng bất kỳ giá trị nào nếu cần.
Khởi động và kích hoạt dịch vụ.
Kiểm tra xem Elasticsearch có hoạt động không.
Bạn sẽ thấy thông báo sau output.
Nhập khóa GPG Redis chính thức.
Thêm kho lưu trữ APT vào danh sách nguồn của bạn.
Cập nhật kho lưu trữ hệ thống danh sách.
Phát hành lệnh sau để cài đặt máy chủ Redis.
Xác nhận Redis phiên bản.
Chúng ta hãy xác minh kết nối dịch vụ bằng cách sử dụng lệnh sau.
Bạn sẽ được chuyển sang shell Redis.
Bước đầu tiên là đặt mật khẩu cho người dùng mặc định của Redis. Thay thế
Kiểm tra Redis Xác thực.
Ping dịch vụ.
Thoát khỏi dịch vụ bằng cách nhập
Cấp quyền cho thư mục Magento cho người dùng.
Trước khi đi sâu hơn, bạn cần có khóa xác thực do kho lưu trữ Magento yêu cầu. Truy cập trang web
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22349%22%3E%3C/svg%3E
Nhấp vào nút Đăng nhập bằng ID Adobe để đến trang sau.
Nếu bạn có Adobe ID, hãy nhập thông tin đăng nhập của bạn để tiếp tục hoặc bạn có thể tạo tài khoản tại đây. Sau khi tạo tài khoản và đăng nhập, hãy mở URL
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22369%22%3E%3C/svg%3E
Nhấp vào nút Tạo khóa truy cập mới để tạo khóa xác thực của bạn. Đặt tên cho khóa của bạn để nhận dạng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E
Ghi lại cả khóa công khai và khóa riêng tư cho bước tiếp theo.
Tạo tệp
Dán mã sau vào đó. Sử dụng khóa công khai cho tên người dùng và khóa riêng cho mật khẩu.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Chuyển sang
Tạo dự án Magento. Lưu ý
Bạn sẽ thấy đầu ra tương tự.
Có sự cố với tệp cấu hình Nginx mẫu do Adobe cung cấp. Chạy lệnh sau để sửa lỗi.
Chạy các lệnh sau để thiết lập quyền cho tệp và làm cho tệp nhị phân Magento có thể thực thi được. Ngoài ra, hãy đặt chủ sở hữu của thư mục Magento thành người dùng Nginx để có thể truy cập trang web.
Mở tệp
Tìm kiếm các mục sau dòng.
Thay thế bằng mã sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Đảm bảo bạn đang ở trong Magento thư mục.
Chạy lệnh sau để cài đặt Magento.
Sau khi quá trình hoàn tất, bạn sẽ nhận được kết quả tương tự.
Ghi lại URI quản trị mà bạn sẽ cần sau này để truy cập bảng quản trị.
Tạo Magento cron công việc.
Xác minh công việc cron.
Bạn sẽ thấy thông báo sau đầu ra.
Chúng ta cần đặt người dùng/nhóm Unix của các quy trình PHP thành nginx. Tìm các dòng
Tìm
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tăng thời gian thực thi cho PHP-FPM và PHP-CLI lên 180 giây.
Tăng giới hạn bộ nhớ cho PHP-FPM từ 128MB lên 256MB. Bạn có thể tăng giới hạn tùy thuộc vào kích thước máy chủ và yêu cầu của mình.
Theo mặc định, Magento đặt giới hạn kích thước tệp cho thư viện phương tiện là 2MB. Chạy các lệnh sau để tăng giới hạn kích thước tệp lên 25MB.
Bật Nén Zlib.
Khởi động lại PHP-FPM dịch vụ.
Thay đổi nhóm thư mục phiên PHP thành Nginx.
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tạo và mở tệp
Dán mã sau vào nó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc sau khi hoàn tất.
Magento đi kèm với mẫu cấu hình Nginx tại
Xác minh cú pháp tệp cấu hình Nginx.
Khởi động lại Nginx dịch vụ.
Mở trang web Magento thông qua URL
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22568%22%3E%3C/svg%3E
Nếu CSS và JS không tải được cho bạn, hãy chạy các lệnh sau.
Nếu bạn đã định cấu hình
Chạy lệnh sau để tạo các lớp.
Xóa bộ nhớ đệm khi tốt.
Mở URL
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22523%22%20height=%22618%22%3E%3C/svg%3E
Nhập thông tin đăng nhập quản trị viên được cung cấp trong quá trình cài đặt và nhấp vào nút Đăng nhập để tiếp tục. Bạn sẽ được chào đón bằng màn hình sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22476%22%3E%3C/svg%3E
Bạn sẽ nhận được một cửa sổ bật lên yêu cầu Adobe cấp quyền thu thập dữ liệu sử dụng. Nhấp vào nút Không cho phép để tiếp tục.
Bước tiếp theo là cấu hình SMTP cho email để chúng ta có thể bật lại xác thực hai yếu tố. Truy cập Cửa hàng >> Menu Cấu hình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22614%22%20height=%22723%22%3E%3C/svg%3E
Mở rộng Menu nâng cao từ phía bên trái và nhấp vào tùy chọn Hệ thống để mở trang cài đặt Email.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22463%22%3E%3C/svg%3E
Bỏ chọn Sử dụng giá trị hệ thống ở phía trước các tùy chọn Giao thông, Máy chủ và Cổng. Nhấp vào menu thả xuống cho Giao thông và chọn SMTP từ đó. Đối với hướng dẫn của chúng tôi, chúng tôi sử dụng Amazon SES làm trình gửi thư.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22678%22%3E%3C/svg%3E
Nhập máy chủ SMTP của bạn, 587 làm cổng, tên người dùng và mật khẩu, đặt Auth thành LOGIN và đặt SSL thành TLS trong các trường đã cho. Nhấp vào nút Save Config khi bạn hoàn tất. Bây giờ chúng ta đã cấu hình cài đặt email, bước tiếp theo là cấu hình ID email của cửa hàng để chúng ta có thể kiểm tra chúng.
Cuộn lên và mở rộng menu Chung trên cùng một trang và chọn tùy chọn Địa chỉ email của cửa hàng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22559%22%3E%3C/svg%3E
Bỏ chọn các trường Email người gửi mặc định và nhập ID email của cửa hàng bạn. Nhấp vào nút Lưu cấu hình khi bạn hoàn tất. Tương tự, hãy mở màn hình Danh bạ và thực hiện những thay đổi tương tự, sau đó nhấp vào nút Lưu cấu hình để hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22322%22%3E%3C/svg%3E
Việc thay đổi tùy chọn quản trị viên có thể ảnh hưởng đến bộ nhớ đệm và bạn sẽ nhận được cảnh báo. Chạy lệnh sau để xóa bộ nhớ đệm theo cách thủ công.
Để kiểm tra email, hãy truy cập trang cửa hàng và mở trang
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22411%22%3E%3C/svg%3E
Nâng cấp thiết lập cho các mô-đun.
Chạy lệnh sau để tạo lớp.
Xóa bộ nhớ đệm.
Nếu bạn không thể truy cập vào khu vực quản trị, hãy chạy các lệnh sau.
Buộc triển khai tĩnh nội dung.
Thiết lập quyền cho tệp.
Truy cập cổng thông tin Quản trị và bạn sẽ thấy màn hình sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22597%22%20height=%22574%22%3E%3C/svg%3E
Chúng tôi sẽ sử dụng Phương pháp Google Authenticator. Bạn có thể sử dụng khóa phần cứng nếu có. Phương pháp Google Authenticator hoạt động với bất kỳ ứng dụng TOTP nào bao gồm Authy, 1Password, Bitwarden, Microsoft Authenticator, v.v. Nhấp vào nút Áp dụng để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22446%22%20height=%22750%22%3E%3C/svg%3E
Ở trang tiếp theo, bạn sẽ nhận được mã QR để quét bằng ứng dụng 2FA của mình. Nhập thông tin chi tiết vào ứng dụng của bạn và sao chép mã đã tạo vào trường Mã xác thực. Nhấp vào nút Xác nhận để tiếp tục đến bảng điều khiển quản trị.
Trong hướng dẫn này, chúng tôi sẽ cài đặt phiên bản cộng đồng mã nguồn mở Magento. Nó cung cấp tất cả các chức năng bạn cần để thiết lập một cửa hàng trực tuyến chuyên nghiệp. Chúng tôi cũng sẽ cài đặt Elasticsearch để tìm kiếm qua danh mục sản phẩm, Redis cho bộ đệm tệp và phiên, và phục vụ nó bằng máy chủ Nginx.
Điều kiện tiên quyết
-
Một máy chủ chạy Debian 12 với RAM tối thiểu 2GB. Bạn có thể cần nhiều RAM hơn tùy thuộc vào yêu cầu của mình.
-
Người dùng không phải root có quyền sudo.
-
Tên miền đủ điều kiện (FQDN) cho máy chủ,magento.example.com
-
Đảm bảo mọi thứ được cập nhật.
Mã:
$ sudo apt update
$ sudo apt upgrade
Một số gói mà hệ thống của bạn cần.
Mã:
$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên là cấu hình tường lửa. Debian đi kèm với ufw (Uncomplicated Firewall) theo mặc định.Kiểm tra xem tường lửa có đang chạy không.
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
Bước 2 - Cài đặt PHP và các tiện ích mở rộng của nó
Debian 12 được cài đặt sẵn phiên bản PHP 8.2 theo mặc định. Bạn có thể cài đặt nó và các tiện ích mở rộng mà Magento yêu cầu bằng cách chạy lệnh sau.
Mã:
$ sudo apt install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-xsl libsodium-dev libsodium23 libssl-dev libcurl4-openssl-dev
Đầu tiên, hãy nhập kho lưu trữ PHP GPG của Sury key.
Mã:
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Mã:
$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
Mã:
$ sudo apt update
Mã:
$ sudo apt install php8.2-fpm php8.2-mysql php8.2-bcmath php8.2-xml php8.2-zip php8.2-curl php8.2-mbstring php8.2-gd php8.2-tidy php8.2-intl php8.2-cli php8.2-soap php8.2-xsl libsodium-dev libsodium23 libssl-dev libcurl4-openssl-dev
Mã:
$ php --version
PHP 8.2.8 (cli) (built: Jul 16 2023 11:00:43) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.8, Copyright (c) Zend Technologies with Zend OPcache v8.2.8, Copyright (c), by Zend Technologies
Bước 3 - Cài đặt Composer
Composer là một công cụ quản lý phụ thuộc cho PHP và là công cụ cần thiết để cài đặt Magento.Chạy các lệnh sau để tải xuống tệp nhị phân Composer. Magento yêu cầu Composer 2.2 LTS nên chúng tôi đã sửa đổi lệnh cho phù hợp.
Mã:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php composer-setup.php --2.2
$ php -r "unlink('composer-setup.php');"
/usr/local/bin
thư mục.
Mã:
$ sudo mv composer.phar /usr/local/bin/composer
Mã:
$ composer --version
Composer version 2.2.21 2023-02-15 13:07:40
Bước 4 - Cài đặt MariaDB
Debian 12 không đi kèm MySQL theo mặc định và họ vẫn chưa phát hành gói chính thức cho MySQL. Do đó, chúng tôi sẽ sử dụng MariaDB cho MySQL. MariaDB cũng không có gói chính thức cho Debian 12 nhưng Debian đi kèm MySQL. Do đó, hãy cài đặt nó bằng lệnh sau.
Mã:
$ sudo apt install mariadb-server
Mã:
$ mysql --version
mysql Ver 15.1 Distrib 10.11.3-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
Chạy tập lệnh cài đặt an toàn MariaDB.
Mã:
$ sudo mysql_secure_installation
Mã:
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none):
unix_socket
cho phép bạn sử dụng thông tin xác thực hệ điều hành của mình để kết nối với máy chủ MariaDB. Vì bạn đã có tài khoản root được bảo vệ, hãy nhập n
để tiếp tục.
Mã:
OK, successfully used password, moving on...
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
n
để tiếp tục.
Mã:
... skipping.
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] n
Mã:
... skipping.
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y ... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y ... Success!
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y ... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
sudo mysql
hoặc sudo mariadb
trên dòng lệnh.Bước 5 - Cấu hình MariaDB
Đăng nhập vào shell MariaDB.
Mã:
$ sudo mysql
Mã:
mysql> CREATE DATABASE magento;
Mã:
mysql> CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
Mã:
mysql> GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
Mã:
MariaDB> GRANT ALL ON *.* TO 'navjot'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;
Mã:
mysql> FLUSH PRIVILEGES;
Mã:
mysql> exit
Bước 6 - Cài đặt Nginx
Debian 12 đi kèm với phiên bản Nginx cũ hơn. Để cài đặt phiên bản mới nhất, bạn cần tải xuống kho lưu trữ Nginx chính thức.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \ | sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
sudo
.
Mã:
$ sudo nginx -v
nginx version: nginx/1.24.0
Mã:
$ sudo systemctl start nginx
Mã:
? nginx.service - nginx - high performance web server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled) Active: active (running) since Wed 2023-08-02 06:45:52 UTC; 14s ago Docs: https://nginx.org/en/docs/ Process: 18326 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 18327 (nginx) Tasks: 2 (limit: 2315) Memory: 1.8M CPU: 11ms CGroup: /system.slice/nginx.service ??18327 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??18328 "nginx: worker process"
Bước 7 - Cài đặt SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng tôi sẽ sử dụng phiên bản Snapd.Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Mã:
$ sudo apt install snapd
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --version
certbot 2.6.0
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d magento.example.com
/etc/letsencrypt/live/magento.example.com
trên máy chủ của bạn.Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ sudo systemctl list-timers
snap.certbot.renew.service
là một trong những dịch vụ được lên lịch chạy.
Mã:
NEXT LEFT LAST PASSED UNIT ACTIVATES
.....
Wed 2023-08-02 08:09:00 UTC 9h left Wed 2023-08-02 07:39:06 UTC 2h 59min ago snap.certbot.renew.timer snap.certbot.renew.service
Thu 2023-08-03 06:41:11 UTC 9h left Wed 2023-08-02 06:24:33 UTC 10h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Wed 2023-08-02 14:06:00 UTC 11h left Sun 2021-11-14 02:03:02 UTC 5min ago apt-daily.timer apt-daily.service
Mã:
$ sudo certbot renew --dry-run
Bước 8 - Cài đặt Elasticsearch
Elasticsearch được Magento sử dụng để tìm kiếm sản phẩm. Chúng tôi sẽ cài đặt Elasticsearch 7.x bằng kho lưu trữ chính thức của nó vì đây là phiên bản tương thích với Magento.Nhập khóa GPG của Elasticsearch.
Mã:
$ wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install elasticsearch
/etc/elasticsearch/jvm.options.d/memory.options
và mở tệp đó để chỉnh sửa.
Mã:
$ sudo nano /etc/elasticsearch/jvm.options.d/memory.options
-Xms1g
.
Mã:
-Xms512m
-Xmx784m
Khởi động và kích hoạt dịch vụ.
Mã:
$ sudo systemctl enable elasticsearch --now
Mã:
$ curl http://localhost:9200
Mã:
{ "name" : "magento", "cluster_name" : "elasticsearch", "cluster_uuid" : "LNFRevgvQIOGeWCdtvc7bA", "version" : { "number" : "7.17.12", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "e3b0c3d3c5c130e1dc6d567d6baef1c73eeb2059", "build_date" : "2023-07-20T05:33:33.690180787Z", "build_snapshot" : false, "lucene_version" : "8.11.1", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search"
}
Bước 9 - Cài đặt máy chủ Redis
Magento sử dụng Redis để lưu trữ phiên và bộ nhớ đệm. Hoàn toàn tùy chọn và bạn có thể sử dụng cơ sở dữ liệu để lưu trữ phiên. Nhưng Redis làm tốt hơn. Phiên bản mới nhất của Magento hoạt động với Redis 7.0. Debian đi kèm với Redis 6.0 nên chúng ta sẽ sử dụng kho lưu trữ Redis để cài đặt.Nhập khóa GPG Redis chính thức.
Mã:
$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
Mã:
$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install redis
Mã:
$ redis-server -v
Redis server v=7.0.12 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=d706905cc5f560c1
Mã:
$ redis-cli
Bước đầu tiên là đặt mật khẩu cho người dùng mặc định của Redis. Thay thế
Your_Redis_Password
bằng mật khẩu mạnh mà bạn chọn. Đảm bảo bạn thêm tiền tố mật khẩu bằng ký tự >
.
Mã:
127.0.0.1:6379> acl setuser default >Your_Redis_Password
Mã:
127.0.0.1:6379> AUTH Your_Redis_Password
OK
Mã:
127.0.0.1:6379> ping
PONG
exit
.Bước 10 - Tải xuống Magento
Tạo thư mục gốc web cho Magento.
Mã:
$ sudo mkdir /var/www/magento -p
Mã:
$ sudo chown $USER:$USER /var/www/magento/ -R
https://account.magento.com/
và bạn sẽ nhận được trang sau yêu cầu bạn đăng nhập bằng ID Adobe của mình.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22349%22%3E%3C/svg%3E
Nhấp vào nút Đăng nhập bằng ID Adobe để đến trang sau.
Nếu bạn có Adobe ID, hãy nhập thông tin đăng nhập của bạn để tiếp tục hoặc bạn có thể tạo tài khoản tại đây. Sau khi tạo tài khoản và đăng nhập, hãy mở URL
https://marketplace.magento.com/customer/accessKeys/
. Bạn cũng có thể truy cập trang này bằng cách truy cập hồ sơ của mình và nhấp vào liên kết Khóa truy cập.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22369%22%3E%3C/svg%3E
Nhấp vào nút Tạo khóa truy cập mới để tạo khóa xác thực của bạn. Đặt tên cho khóa của bạn để nhận dạng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22257%22%3E%3C/svg%3E
Ghi lại cả khóa công khai và khóa riêng tư cho bước tiếp theo.
Tạo tệp
~/.config/composer/auth.json
và mở tệp đó để chỉnh sửa.
Mã:
$ nano ~/.config/composer/auth.json
Mã:
{
"http-basic": { "repo.magento.com": { "username": "
", "password": "" }
}
}
Chuyển sang
/var/www/magento
thư mục.
Mã:
$ cd /var/www/magento
period
ở cuối lệnh. Nó đề cập đến thư mục hiện tại mà lệnh đang được chạy.
Mã:
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition .
Mã:
Creating a "magento/project-community-edition" project at "./"
Installing magento/project-community-edition (2.4.6-p1) - Downloading magento/project-community-edition (2.4.6-p1) - Installing magento/project-community-edition (2.4.6-p1): Extracting archive
Created project in /var/www/magento/.
Loading composer repositories with package information
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies
Lock file operations: 565 installs, 0 updates, 0 removals - Locking 2tvenom/cborencode (1.0.2) - Locking adobe-commerce/adobe-ims-metapackage (2.2.0) - Locking allure-framework/allure-codeception (v2.3.0) - Locking allure-framework/allure-php-commons (v2.3.1) - Locking allure-framework/allure-phpunit (v2.1.0)
...............................................
Mã:
$ sed -i 's/php-fpm:9000/fastcgi_backend/g' /var/www/magento/nginx.conf.sample
Mã:
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
$ sudo chmod u+x bin/magento
Bước 11 - Cài đặt Magento
Trước khi tiến hành cài đặt, chúng ta cần sửa đổi trình cài đặt để cho phép chúng ta sử dụng MariaDB 10.11.3 hiện không được Magento hỗ trợ. Magento hỗ trợ các phiên bản MariaDB 10.2-10.6 cho đến nay.Mở tệp
/var/www/magento/app/etc/di.xml
để chỉnh sửa.
Mã:
$ sudo nano /var/www/magento/app/etc/di.xml
Mã:
^10\.[2-6]\.
Mã:
^10\.([2-9]|10|11)\.
Đảm bảo bạn đang ở trong Magento thư mục.
Mã:
$ cd /var/www/magento
Mã:
$ bin/magento setup:install \
--base-url=http://magento.example.com \
--use-secure=1 \
--base-url-secure=https://magento.example.com \
--use-secure-admin=1 \
--db-host=localhost \
--db-name=magento \
--db-user=magentouser \
--db-password=Your_password2 \
--admin-firstname=Navjot \
--admin-lastname=Singh \
[emailprotected] \
--admin-user=navjot \
--admin-password=admin_password \
--language=en_US \
--currency=USD \
--timezone=America/Chicago \
--use-rewrites=1 \
--elasticsearch-host=http://127.0.0.1 \
--elasticsearch-port=9200 \
--session-save=redis \
--session-save-redis-db=0 \
--session-save-redis-password=redis_password \
--cache-backend=redis \
--cache-backend-redis-db=2 \
--cache-backend-redis-password=redis_password \
--page-cache=redis \
--page-cache-redis-db=4 \
--page-cache-redis-password=redis_password
Mã:
.......
[SUCCESS]: Magento installation complete.
[SUCCESS]: Magento Admin URI: /admin_11xb2x
Nothing to import.
Tạo Magento cron công việc.
Mã:
$ php bin/magento cron:install
Mã:
$ crontab -l
Mã:
#~ MAGENTO START d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
* * * * * /usr/bin/php8.2 /var/www/magento/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/magento/var/log/magento.cron.log
#~ MAGENTO END d1957f62aa710cc367525c9ec68dd7456d4311756b5aa37d2143c4a98b25318c
Bước 12 - Cấu hình PHP-FPM
Mở tệp/etc/php/8.2/fpm/pool.d/www.conf
.
Mã:
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
user=www-data
và group=www-data
trong tệp và thay đổi chúng thành nginx
.
Mã:
...
; Unix user/group of the child processes. This can be used only if the master
; process running user is root. It is set after the child process is created.
; The user and group can be specified either by their name or by their numeric
; IDs.
; Note: If the user is root, the executable needs to be started with
; --allow-to-run-as-root option to work.
; Default Values: The user is set to master process running user by default.
; If the group is not set, the user's group is used.
user = nginx
group = nginx
...
listen.owner = www-data
và listen.group = www-data
dòng trong tệp và thay đổi chúng thành nginx
.
Mã:
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
; BSD-derived systems allow connections regardless of permissions. The owner
; and group can be specified either by name or by their numeric IDs.
; Default Values: user and group are set as the running user
; mode is set to 0660
listen.owner = nginx
listen.group = nginx
Tăng thời gian thực thi cho PHP-FPM và PHP-CLI lên 180 giây.
Mã:
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini
Mã:
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
Mã:
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini
Mã:
$ sudo sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini
Mã:
$ sudo systemctl restart php8.2-fpm
Mã:
$ sudo chgrp -R nginx /var/lib/php/sessions
Bước 13 - Cấu hình Nginx
Mở tệp/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Tạo và mở tệp
/etc/nginx/conf.d/magento.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/magento.conf
Mã:
upstream fastcgi_backend { server unix:/run/php/php8.2-fpm.sock;
}
server { # Redirect any http requests to https listen 80; listen [::]:80; server_name magento.example.com; return 301 https://$host$request_uri;
}
server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name magento.example.com; set $MAGE_ROOT /var/www/magento; include /var/www/magento/nginx.conf.sample; client_max_body_size 25m; access_log /var/log/nginx/magento.access.log; error_log /var/log/nginx/magento.error.log; # TLS configuration ssl_certificate /etc/letsencrypt/live/magento.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/magento.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/magento.example.com/chain.pem; ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384'; ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:50m; ssl_session_timeout 1d; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificate and cache them ssl_stapling on; ssl_stapling_verify on; ssl_dhparam /etc/ssl/certs/dhparam.pem;
}
Magento đi kèm với mẫu cấu hình Nginx tại
/var/www/magento/nginx.conf.sample
mà chúng tôi đã đưa vào cấu hình của mình. Biến $MAGE_ROOT
trỏ đến thư mục gốc web Magento mà chúng tôi đã đặt trong tệp của mình và được sử dụng trong tệp cấu hình mẫu.Xác minh cú pháp tệp cấu hình Nginx.
Mã:
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Mã:
$ sudo systemctl restart nginx
https://magento.example.com
. Bạn sẽ thấy trang sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22568%22%3E%3C/svg%3E
Nếu CSS và JS không tải được cho bạn, hãy chạy các lệnh sau.
Mã:
$ cd /var/www/magento
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex
Bước 14 - Vô hiệu hóa xác thực hai yếu tố Xác thực
Trước khi truy cập bảng quản trị, chúng ta cần tắt xác thực hai yếu tố được bật theo mặc định. Magento cố gắng gửi thư quasendmail
để bật xác thực hai yếu tố trong quá trình cài đặt nhưng vì chúng tôi không định cấu hình điều đó nên cách duy nhất để truy cập bảng điều khiển là tắt tính năng này trước.Nếu bạn đã định cấu hình
sendmail
trên máy chủ của mình để gửi email, thì bạn có thể bỏ qua bước này. Để vô hiệu hóa xác thực hai yếu tố, chúng ta cần vô hiệu hóa hai mô-đun của Magento bằng các lệnh sau.
Mã:
$ php /var/www/magento/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:disable Magento_TwoFactorAuth
Mã:
$ php /var/www/magento/bin/magento setup:di:compile
Mã:
$ php /var/www/magento/bin/magento c:c
Bước 15 - Truy cập Cổng quản trị
Bạn sẽ cần mở cổng quản trị bằng URI mà tập lệnh cài đặt Magento cung cấp cho bạn. Nếu vì lý do nào đó bạn quên ghi chú lại hoặc làm mất, bạn có thể lấy lại URI bằng lệnh sau.
Mã:
$ php /var/www/magento/bin/magento info:adminuri
Admin URI: /admin_11xb2x
https://magento.example.com/admin_11xb2x
trong trình duyệt của bạn và bạn sẽ nhận được màn hình sau.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22523%22%20height=%22618%22%3E%3C/svg%3E
Nhập thông tin đăng nhập quản trị viên được cung cấp trong quá trình cài đặt và nhấp vào nút Đăng nhập để tiếp tục. Bạn sẽ được chào đón bằng màn hình sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22476%22%3E%3C/svg%3E
Bạn sẽ nhận được một cửa sổ bật lên yêu cầu Adobe cấp quyền thu thập dữ liệu sử dụng. Nhấp vào nút Không cho phép để tiếp tục.
Bước tiếp theo là cấu hình SMTP cho email để chúng ta có thể bật lại xác thực hai yếu tố. Truy cập Cửa hàng >> Menu Cấu hình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22614%22%20height=%22723%22%3E%3C/svg%3E
Mở rộng Menu nâng cao từ phía bên trái và nhấp vào tùy chọn Hệ thống để mở trang cài đặt Email.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22463%22%3E%3C/svg%3E
Bỏ chọn Sử dụng giá trị hệ thống ở phía trước các tùy chọn Giao thông, Máy chủ và Cổng. Nhấp vào menu thả xuống cho Giao thông và chọn SMTP từ đó. Đối với hướng dẫn của chúng tôi, chúng tôi sử dụng Amazon SES làm trình gửi thư.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22678%22%3E%3C/svg%3E
Nhập máy chủ SMTP của bạn, 587 làm cổng, tên người dùng và mật khẩu, đặt Auth thành LOGIN và đặt SSL thành TLS trong các trường đã cho. Nhấp vào nút Save Config khi bạn hoàn tất. Bây giờ chúng ta đã cấu hình cài đặt email, bước tiếp theo là cấu hình ID email của cửa hàng để chúng ta có thể kiểm tra chúng.
Cuộn lên và mở rộng menu Chung trên cùng một trang và chọn tùy chọn Địa chỉ email của cửa hàng.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22559%22%3E%3C/svg%3E
Bỏ chọn các trường Email người gửi mặc định và nhập ID email của cửa hàng bạn. Nhấp vào nút Lưu cấu hình khi bạn hoàn tất. Tương tự, hãy mở màn hình Danh bạ và thực hiện những thay đổi tương tự, sau đó nhấp vào nút Lưu cấu hình để hoàn tất.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22322%22%3E%3C/svg%3E
Việc thay đổi tùy chọn quản trị viên có thể ảnh hưởng đến bộ nhớ đệm và bạn sẽ nhận được cảnh báo. Chạy lệnh sau để xóa bộ nhớ đệm theo cách thủ công.
Mã:
$ php /var/www/magento/bin/magento c:c
Contact Us
. Bạn có thể sử dụng URL https://magento.example.com/contact/
trực tiếp để truy cập. Gửi tin nhắn thử nghiệm và nhấp vào nút Gửi. Bạn sẽ nhận được một email tương tự.data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22411%22%3E%3C/svg%3E
Bước 16 - Bật và Cấu hình Xác thực Hai yếu tố
Bây giờ chúng ta đã bật trình gửi thư SMTP, đã đến lúc bật lại xác thực hai yếu tố. Chạy các lệnh sau để bật xác thực hai yếu tố.
Mã:
$ php /var/www/magento/bin/magento module:enable Magento_AdminAdobeImsTwoFactorAuth
$ php /var/www/magento/bin/magento module:enable Magento_TwoFactorAuth
Mã:
$ php /var/www/magento/bin/magento setup:upgrade
Mã:
$ php /var/www/magento/bin/magento setup:di:compile
Mã:
$ php /var/www/magento/bin/magento c:c
Buộc triển khai tĩnh nội dung.
Mã:
$ php /var/www/magento/bin/magento setup:static-content:Deploy -f
Mã:
$ cd /var/www/magento
$ sudo find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
$ sudo find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
$ sudo chown -R :nginx .
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22597%22%20height=%22574%22%3E%3C/svg%3E
Chúng tôi sẽ sử dụng Phương pháp Google Authenticator. Bạn có thể sử dụng khóa phần cứng nếu có. Phương pháp Google Authenticator hoạt động với bất kỳ ứng dụng TOTP nào bao gồm Authy, 1Password, Bitwarden, Microsoft Authenticator, v.v. Nhấp vào nút Áp dụng để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22446%22%20height=%22750%22%3E%3C/svg%3E
Ở trang tiếp theo, bạn sẽ nhận được mã QR để quét bằng ứng dụng 2FA của mình. Nhập thông tin chi tiết vào ứng dụng của bạn và sao chép mã đã tạo vào trường Mã xác thực. Nhấp vào nút Xác nhận để tiếp tục đến bảng điều khiển quản trị.