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 và được đặt tên là Adobe eCommerce. 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 nhu cầu.
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ẽ nhận được kết quả sau.
Cho phép cổng SSH để tường lửa không làm gián đoạn kết nối hiện tại khi bật nó.
Cho phép cả cổng HTTP và HTTPS.
Kích hoạt Tường lửa
Kiểm tra lại trạng thái của tường lửa.
Bạn sẽ thấy trạng thái tương tự đầu ra.
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.
Bước này cần thiết cho MySQL phiên bản 8.0.28 trở lên. Nhập MySQL Shell.
Chạy lệnh sau để đặt mật khẩu cho người dùng root của bạn. Đảm bảo mật khẩu có sự kết hợp giữa số, chữ hoa, chữ thường và ký tự đặc biệt.
Thoát khỏi shell.
Chạy cài đặt bảo mật MySQL script.
Đầu tiên, bạn sẽ được yêu cầu nhập mật khẩu gốc. Nhập mật khẩu. Tiếp theo, bạn sẽ được yêu cầu cài đặt Thành phần Xác thực Mật khẩu. Thành phần này sẽ kiểm tra độ mạnh của mật khẩu được sử dụng trong MySQL. Nhấn Y để cài đặt. Tiếp theo, bạn sẽ được yêu cầu đặt mức chính sách xác thực mật khẩu. Chọn 2 vì đây là mật khẩu mạnh nhất.
Tiếp theo, nhập N để từ chối thay đổi mật khẩu gốc của bạn. Ngoài ra, hãy 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 bảng đặc quyền.
Tạo cơ sở dữ liệu cho Magento.
Tạo người dùng SQL tài khoản.
Cấp tất cả các quyền trên cơ sở dữ liệu cho người dùng.
Xóa người dùng quyền.
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.
Khởi động máy chủ Nginx.
Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng 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 rằng lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
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 kho lưu trữ của hệ thống list.
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 nó.
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 danh sách kho lưu trữ hệ thống.
Phát hành lệnh sau để cài đặt Redis máy chủ.
Xác nhận phiên bản Redis.
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 lệnh.
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.
Chuyển sang
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22710%22%3E%3C/svg%3E
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 dự án Magento.
Bạn sẽ được yêu cầu nhập tên người dùng và mật khẩu cho kho lưu trữ. Sử dụng khóa công khai làm tên người dùng và khóa riêng làm mật khẩu. Bạn sẽ được hỏi xem bạn có muốn lưu trữ thông tin xác thực trong thư mục cấu hình Composer không. Nhập
Chạy các lệnh sau để thiết lập quyền cho tệp và thực thi tệp nhị phân Magento. 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.
Chạy lệnh sau để cài đặt Magento.
Sau khi quá trình hoàn tất, bạn sẽ nhận được thông báo tương tự đầu ra.
Ghi lại URI quản trị mà bạn sẽ cần sau này để truy cập bảng điều khiển quản trị.
Tạo các công việc cron Magento.
Xác minh cron công việc.
Bạn sẽ thấy kết quả sau.
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.
Bước 14 - Tắt xác thực hai yếu tố Magento cố gắng gửi thư qua
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 Ubuntu 22.04 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 nhu cầu.
Mã:
$ sudo apt install wget curl nano software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release ubuntu-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. Ubuntu đ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: inactive
Mã:
$ sudo ufw allow OpenSSH
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
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ó
Ubuntu 22.04 đi kèm với phiên bản PHP 8.1.2, phiên bản này hơi lỗi thời. Chúng tôi sẽ cài đặt phiên bản PHP 8.2 mới nhất bằng kho lưu trữ PHP của Ondrej.
Mã:
$ sudo add-apt-repository ppa:ondrej/php
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 libcurl14-openssl-dev
Mã:
$ php --version
PHP 8.2.5 (cli) (built: Apr 14 2023 04:27:02) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.5, Copyright (c) Zend Technologies with Zend OPcache v8.2.5, 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 MySQL
Ubuntu 22.04 được tích hợp phiên bản MySQL mới nhất. Bạn có thể cài đặt nó bằng một lệnh duy nhất.
Mã:
$ sudo apt install mysql-server
Mã:
$ mysql --version
mysql Ver 8.0.33-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
Mã:
$ sudo mysql
Mã:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourPassword12!';
Mã:
mysql> exit
Mã:
$ sudo mysql_secure_installation
Mã:
Securing the MySQL server deployment.
Enter password for user root:
VALIDATE PASSWORD COMPONENT can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: Y
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
Using existing password for root.
Estimated strength of the password: 100
Mã:
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N ... skipping.
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL 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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : Y
Success.
By default, MySQL 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? (Press y|Y for Yes, any other key for No) : 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? (Press y|Y for Yes, any other key for No) : Y
Success.
All done!
Bước 5 - Cấu hình MySQL
Đăng nhập vào shell MySQL. Nhập mật khẩu gốc của bạn khi được nhắc.
Mã:
$ sudo mysql -u root -p
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ã:
mysql> FLUSH PRIVILEGES;
Mã:
mysql> exit
Bước 6 - Cài đặt Nginx
Ubuntu 22.04 đ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 arch=amd64] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
Mã:
$ nginx -v
nginx version: nginx/1.24.0
Mã:
$ sudo systemctl start nginx
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 Ubuntu hoặc lấy phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.Ubuntu 22.04 đi kèm với Snapd được cài đặt theo mặc định. Chạy các lệnh sau để đảm bảo rằng phiên bản Snapd của bạn đã được cập nhật.
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ã:
$ 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
.....
Sun 2023-02-26 06:32:00 UTC 9h left Sat 2023-02-25 18:04:05 UTC 2h 59min ago snap.certbot.renew.timer snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left Sat 2023-02-25 10:49:23 UTC 10h ago apt-daily-upgrade.timer apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left Sat 2023-02-25 20:58:06 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
Mã:
-Xms1g
-Xmx1g
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" : "6yks8tZ6T4GskIwWoXuSLA", "version" : { "number" : "7.17.10", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "fecd68e3150eda0c307ab9a9d7557f5d5fd71349", "build_date" : "2023-04-23T05:33:18.138275597Z", "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. Ubuntu đ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.11 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=3af367a78d5e21e9
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
/var/www
thư mục.
Mã:
$ cd /var/www
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.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22710%22%3E%3C/svg%3E
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 dự án Magento.
Mã:
$ composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento
y
để thực hiện.
Mã:
Creating a "magento/project-community-edition" project at "./magento" Authentication required (repo.magento.com): Username: 53211xxxxxxxxxxxxxxxxxxxxxxxxxxx Password:
Do you want to store credentials for repo.magento.com in /home/navjot/.config/composer/auth.json ? [Yn] y
Installing magento/project-community-edition (2.4.6) - Downloading magento/project-community-edition (2.4.6) - Installing magento/project-community-edition (2.4.6): 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: 564 installs, 0 updates, 0 removals - Locking 2tvenom/cborencode (1.0.2) - Locking adobe-commerce/adobe-ims-metapackage (2.2.0)
...............................................
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 .
$ sudo chmod u+x bin/magento
Bước 11 - Cài đặt Magento
Đảm bảo bạn đang ở trong thư mục Magento.
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_19uadb
Nothing to import.
Tạo các công việc cron Magento.
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 processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache user chosen to provide access to the same directories as httpd
user = nginx
; RPM: Keep a group allowed to write in log dir.
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 - Tắt xác thực hai yếu tố Magento cố gắng gửi thư qua sendmail
để 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 tính năng đó 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_19uadb
https://magento.example.com/admin_19uadb
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ị.