Magento là phần mềm thương mại điện tử mã nguồn mở và hệ thống quản lý nội dung được sử dụng rộng rãi cho các trang web thương mại điện tử dựa trên PHP Zend Framework. Nó sử dụng MySQL hoặc MariaDB làm cơ sở dữ liệu phụ trợ. Quá trình phát triển Magento đã được Varien bắt đầu vào năm 2008.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Magento 2 với Nginx, PHP 7.1 FPM và MySQL làm cơ sở dữ liệu. Tôi sẽ sử dụng ubuntu 18.04 (Bionic Beaver) làm hệ điều hành máy chủ. Nếu bạn chưa có thiết lập máy chủ tối thiểu, vui lòng xem hướng dẫn này để có thiết lập cơ bản phù hợp.
Đăng nhập vào máy chủ, cập nhật kho lưu trữ và nâng cấp tất cả các gói.
Bây giờ hãy cài đặt máy chủ web Nginx bằng lệnh apt bên dưới.
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ Nginx và cho phép nó khởi chạy mỗi lần khởi động hệ thống.
Máy chủ web Nginx đã được cài đặt, hãy kiểm tra bằng lệnh netstat và đảm bảo cổng HTTP 80 ở trạng thái 'LISTEN'. Một cách khác là sử dụng lệnh curl như bên dưới.
Danh sách các tiện ích mở rộng PHP cần thiết cho cài đặt Magento 2:
Cài đặt gói 'software-properties-common' và thêm kho lưu trữ 'ondrej/php' bằng các lệnh bên dưới.
Bây giờ hãy cài đặt PHP-FPM 7.1 với tất cả các tiện ích mở rộng cần thiết.
Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản PHP và các tiện ích mở rộng đã cài đặt bằng lệnh PHP.
Tiếp theo, chúng ta sẽ cấu hình tệp php.ini cho PHP-FPM và PHP-CLI.
Chỉnh sửa các tệp php.ini bằng vim.
Thay đổi giá trị của các dòng đó như bên dưới.
Lưu và thoát.
Bây giờ hãy khởi động lại dịch vụ PHP-fpm và cho phép dịch vụ này khởi chạy mỗi khi khởi động hệ thống.
Quá trình cài đặt và cấu hình PHP-FPM 7.1 đã hoàn tất, hãy kiểm tra dịch vụ bằng lệnh netstat.
Và bạn sẽ nhận được tệp socks PHP-fpm như bên dưới.
Cài đặt MySQL 5.8 bằng lệnh apt bên dưới.
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ MySQL và cho phép dịch vụ này khởi chạy mỗi lần khởi động hệ thống.
Bây giờ chúng ta sẽ cấu hình mật khẩu gốc MySQL bằng lệnh 'mysql_secure_installation'.
Trong phiên bản MySQL 5.8 này, có một cải tiến về bảo mật cho chính sách mật khẩu MySQL. Bạn cần chọn chính sách mật khẩu - 0 cho chính sách THẤP, 1 cho chính sách TRUNG BÌNH và 2 cho chính sách mật khẩu MẠNH.
Đối với hướng dẫn này, chúng ta sẽ sử dụng chính sách mật khẩu 'TRUNG BÌNH' và khuyến nghị sử dụng chính sách mật khẩu 'MẠNH' trên máy chủ sản xuất.
Chọn số '1' và nhấn Enter, sau đó nhập mật khẩu 'gốc' MySQL mới của bạn.
Mật khẩu root MySQL đã được thiết lập.
Tiếp theo, chúng ta sẽ tạo một cơ sở dữ liệu mới cho cài đặt Magento của mình. Chúng tôi sẽ tạo một cơ sở dữ liệu mới có tên 'magentodb' với người dùng 'magentouser' và mật khẩu là 'Magento0463@#'.
Đăng nhập vào shell MySQL bằng người dùng root.
Bây giờ hãy chạy các truy vấn MySQL bên dưới để tạo cơ sở dữ liệu và người dùng.
Quá trình cài đặt và cấu hình máy chủ MySQL cho quá trình cài đặt Magento đã hoàn tất.
Sau khi cài đặt hoàn tất, hãy kiểm tra phiên bản composer đã cài đặt trên hệ thống.
Phiên bản PHP Composer mới nhất đã được cài đặt.
Bây giờ hãy giải nén tệp lưu trữ Magento và đổi tên thư mục thành 'magento2'.
Mã nguồn Magento đã được tải xuống và thư mục '/var/www/magento2' sẽ là thư mục gốc của trang web Magento.
Sau khi cài đặt hoàn tất, bạn sẽ nhận được kết quả như hình dưới đây.
Sau khi cài đặt hoàn tất, hãy dừng dịch vụ nginx.
Bây giờ hãy tạo chứng chỉ SSL cho tên miền bằng lệnh certbot như bên dưới.
Nhập địa chỉ email của bạn, chấp nhận TOS của Letsencrypt, sau đó nhập 'N' để chia sẻ email.
Khi hoàn tất, bạn sẽ nhận được kết quả như bên dưới.
Các tệp chứng chỉ SSL của Letsencrypt đã được tạo vào thư mục '/etc/letsencrypt/live'.
Dán cấu hình sau vào đó.
Lưu cấu hình và thoát.
Bây giờ hãy kích hoạt máy chủ ảo bằng cách tạo liên kết tượng trưng cho tệp máy chủ ảo Magento tới thư mục 'sites-enabled'.
Kiểm tra tệp cấu hình nginx và đảm bảo không có lỗi.
Bây giờ hãy khởi động lại dịch vụ PHP-FPM và Nginx.
Và thay đổi chủ sở hữu của thư mục gốc web Magento thành người dùng và nhóm 'www-data'.
Máy chủ ảo nginx cho Magento đã được đã thêm.
Đối với 'Điều khoản và Thỏa thuận', hãy nhấp vào nút 'Đồng ý và Thiết lập Magento'.
Bây giờ hãy kiểm tra tất cả cấu hình hệ thống và máy chủ cho Magento 'Kiểm tra Readlines' và đảm bảo rằng nó 'vượt qua' tất cả các kiểm tra hệ thống và cấu hình như bên dưới.
Bây giờ hãy nhấp vào nút 'Tiếp theo'.
Cấu hình cơ sở dữ liệu cho Magento - nhập tất cả thông tin cơ sở dữ liệu của chúng tôi và nhấp vào 'Tiếp theo'.
Đối với cấu hình web, hãy thay đổi 'địa chỉ cửa hàng' thành HTTPS, 'Địa chỉ quản trị Magento' bằng URL đường dẫn quản trị của bạn và bỏ chọn 'Apache Rewrites', vì chúng tôi đang sử dụng máy chủ web Nginx.
Nhấp vào nút 'Tiếp theo' một lần nữa.
Giữ nguyên 'Customize Your Store' theo mặc định và nhấp vào 'Next'.
Nhập tên người dùng và mật khẩu quản trị viên của bạn, sau đó nhấp vào 'Next'.
Và nhấp vào nút 'Install Now' để cài đặt Magento.
Và khi quá trình cài đặt hoàn tất, bạn sẽ nhận được kết quả 'thành công' như bên dưới.
Bây giờ chúng ta cần vô hiệu hóa quyền ghi cho thư mục '/var/www/magento2/app/etc'. Chạy lệnh bên dưới.
Magento đã được cài đặt trên máy chủ Ubuntu 18.04 Bionic Beaver.
Bây giờ hãy đăng nhập vào bảng điều khiển quản trị Magento bằng cách truy cập URL được xác định trong quá trình cài đặt 'admin_hakase'. Của tôi là:
Nhập tên người dùng và mật khẩu, sau đó nhấp vào nút 'Đăng nhập'.
Và bạn sẽ nhận được bảng điều khiển quản trị Magento như bên dưới.
Magento 2 đã được cài đặt trên Ubuntu 18.04 với máy chủ web Nginx, cơ sở dữ liệu MySQL và PHP-FPM 7.1.
Bây giờ hãy kiểm tra danh sách tập lệnh crontab cho Người dùng 'www-data'.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Magento 2 với Nginx, PHP 7.1 FPM và MySQL làm cơ sở dữ liệu. Tôi sẽ sử dụng ubuntu 18.04 (Bionic Beaver) làm hệ điều hành máy chủ. Nếu bạn chưa có thiết lập máy chủ tối thiểu, vui lòng xem hướng dẫn này để có thiết lập cơ bản phù hợp.
Điều kiện tiên quyết
- Ubuntu 18.04
- Bộ nhớ RAM 2GB trở lên
- Quyền root
Những việc chúng tôi sẽ làm
- Cài đặt Nginx trên Ubuntu 18.04
- Cài đặt và cấu hình PHP-FPM 7.1
- Cài đặt và cấu hình MySQL Server
- Cài đặt và cấu hình Magento 2Cài đặt PHP Composer
- Tải xuống Magento 2
- Cài đặt Magento Components
- Tạo SSL Letsencrypt
- Cấu hình Nginx Virtual Host cho Magento
- Hậu cài đặt Magento
Bước 1 - Cài đặt Nginx trên Ubuntu 18.04 LTS
Trong hướng dẫn này, chúng ta sẽ sử dụng máy chủ web Nginx để cài đặt Magento.Đăng nhập vào máy chủ, cập nhật kho lưu trữ và nâng cấp tất cả các gói.
Mã:
sudo apt update
sudo apt upgrade
Mã:
sudo apt install nginx -y
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
curl -I localhost
Bước 2 - Cài đặt và cấu hình PHP-FPM 7.1
Sau khi cài đặt máy chủ web Nginx, chúng ta sẽ cài đặt PHP 7.1 trên máy chủ vì Magento chưa hỗ trợ PHP 7.2. Chúng tôi sẽ cài đặt PHP-FPM với tất cả các tiện ích mở rộng cần thiết cho Magento 2.Danh sách các tiện ích mở rộng PHP cần thiết cho cài đặt Magento 2:
- bc-math
- ctype
- curl
- dom
- gd, ImageMagick 6.3.7 (hoặc mới hơn) hoặc cả hai
- intl
- mbstring
- mcrypt
- hash
- openssl
- PDO/MySQL
- SimpleXML
- soap
- spl
- libxml
- xsl
- zip
- json
- iconv
Cài đặt gói 'software-properties-common' và thêm kho lưu trữ 'ondrej/php' bằng các lệnh bên dưới.
Mã:
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
Bây giờ hãy cài đặt PHP-FPM 7.1 với tất cả các tiện ích mở rộng cần thiết.
Mã:
sudo apt install php7.1-fpm php7.1-mcrypt php7.1-curl php7.1-cli php7.1-mysql php7.1-gd php7.1-xsl php7.1-json php7.1-intl php-pear php7.1-dev php7.1-common php7.1-mbstring php7.1-zip php7.1-soap php7.1-bcmath -y
Mã:
php -v
php -me
Tiếp theo, chúng ta sẽ cấu hình tệp php.ini cho PHP-FPM và PHP-CLI.
Chỉnh sửa các tệp php.ini bằng vim.
Mã:
vim /etc/php/7.1/fpm/php.ini
vim /etc/php/7.1/cli/php.ini
Mã:
memory_limit = 512Mmax_execution_time = 180zlib.output_compression = On
Bây giờ hãy khởi động lại dịch vụ PHP-fpm và cho phép dịch vụ này khởi chạy mỗi khi khởi động hệ thống.
Mã:
systemctl restart php7.1-fpm
systemctl enable php7.1-fpm
Mã:
netstat -pl | grep php
Bước 3 - Cài đặt và cấu hình MySQL Server
Phần mềm Magento yêu cầu MySQL 5.6.x và Magento 2.1.2 trở lên yêu cầu MySQL 5.7.x. Trong hướng dẫn này, chúng tôi sẽ cài đặt máy chủ MySQL 5.8 mới nhất trên hệ thống Ubuntu 18.04.Cài đặt MySQL 5.8 bằng lệnh apt bên dưới.
Mã:
sudo apt install mysql-server mysql-client -y
Mã:
systemctl start mysql
systemctl enable mysql
Mã:
mysql_secure_installation
Đối với hướng dẫn này, chúng ta sẽ sử dụng chính sách mật khẩu 'TRUNG BÌNH' và khuyến nghị sử dụng chính sách mật khẩu 'MẠNH' trên máy chủ sản xuất.
Chọn số '1' và nhấn Enter, sau đó nhập mật khẩu 'gốc' MySQL mới của bạn.
Mã:
Xóa người dùng ẩn danh? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Không cho phép đăng nhập root từ xa? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Xóa cơ sở dữ liệu thử nghiệm và truy cập vào cơ sở dữ liệu đó? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Tải lại bảng đặc quyền ngay bây giờ? (Nhấn y|Y để Có, bất kỳ phím nào khác để Không): Y
Tiếp theo, chúng ta sẽ tạo một cơ sở dữ liệu mới cho cài đặt Magento của mình. Chúng tôi sẽ tạo một cơ sở dữ liệu mới có tên 'magentodb' với người dùng 'magentouser' và mật khẩu là 'Magento0463@#'.
Đăng nhập vào shell MySQL bằng người dùng root.
Mã:
mysql -u root -p
Mã:
create database magentodb;
create user magentouser@localhost defined by 'Magento0463@#';
grant all privileges on magentodb.* to magentouser@localhost defined by 'Magento0463@#';
flush privileges;
Bước 4 - Cài đặt và cấu hình Magento 2
Trong Bước này, chúng ta sẽ cài đặt Magento 2.2.4 phiên bản mới nhất từ kho lưu trữ Github. Chúng tôi sẽ cài đặt PHP composer để cài đặt các thành phần Magento, tải Magento từ kho lưu trữ Github, cấu hình máy chủ ảo Nginx cho Magento và cài đặt Magento bằng cách sử dụng bài đăng cài đặt trên web.- Cài đặt PHP Composer
Cài đặt PHP Composer trên ubuntu 18.04 bằng lệnh apt bên dưới.
Mã:
sudo apt install composer -y
Mã:
composer -V
Phiên bản PHP Composer mới nhất đã được cài đặt.
- Tải Magento 2
Đi đến thư mục '/var/www' và tải xuống mã nguồn lưu trữ Magento từ Github bằng lệnh wget.
Mã:
cd /var/www/
wget https://github.com/magento/magento2/archive/2.2.4.tar.gz
Mã:
tar -xf 2.2.4.tar.gz
mv magento2-2.2.4/ magento2/
- Cài đặt các thành phần Magento
Cài đặt các thành phần Magento bằng trình soạn thảo PHP. Vào thư mục 'magento2' và cài đặt tất cả các thành phần PHP cần thiết cho Magento bằng lệnh 'composer'.
Mã:
cd /var/www/magento2
composer install -v
- Tạo SSL Letsencrypt
Chúng tôi sẽ bảo mật cài đặt Magento của mình bằng SSL từ Letsencrypt. Cài đặt Letsencrypt bằng lệnh apt bên dưới.
Mã:
sudo apt install letsencrypt -y
Mã:
systemctl stop nginx
Mã:
certbot certonly --standalone -d magento.hakase-labs.pw
Khi hoàn tất, bạn sẽ nhận được kết quả như bên dưới.
Các tệp chứng chỉ SSL của Letsencrypt đã được tạo vào thư mục '/etc/letsencrypt/live'.
- Cấu hình Nginx Virtual Host
Vào thư mục '/etc/nginx/sites-available' và tạo tệp máy chủ ảo mới 'magento' bằng vim.
Mã:
cd /etc/nginx/sites-available/
vim magento
Mã:
upstream fastcgi_backend { server unix:/run/php/php7.1-fpm.sock;}server { lắng nghe 80; lắng nghe [::]:80; tên_máy_chủ magento.hakase-labs.pw; trả về 301 https://$server_name$request_uri;}server { lắng nghe 443 ssl; tên_máy_chủ magento.hakase-labs.pw; ssl on; ssl_certificate /etc/letsencrypt/live/magento.hakase-labs.pw/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/magento.hakase-labs.pw/privkey.pem; đặt $MAGE_ROOT /var/www/magento2; đặt $MAGE_MODE developer; bao gồm /var/www/magento2/nginx.conf.sample;}
Bây giờ hãy kích hoạt máy chủ ảo bằng cách tạo liên kết tượng trưng cho tệp máy chủ ảo Magento tới thư mục 'sites-enabled'.
Mã:
ln -s /etc/nginx/sites-available/magento /etc/nginx/sites-enabled/
Mã:
nginx -t
Mã:
systemctl restart php7.1-fpm
systemctl restart nginx
Mã:
chown -R www-data:www-data /var/www/magento2/
- Cài đặt Magento sau
Mở trình duyệt web và nhập URL Magento. Của tôi là:Đối với 'Điều khoản và Thỏa thuận', hãy nhấp vào nút 'Đồng ý và Thiết lập Magento'.
Bây giờ hãy kiểm tra tất cả cấu hình hệ thống và máy chủ cho Magento 'Kiểm tra Readlines' và đảm bảo rằng nó 'vượt qua' tất cả các kiểm tra hệ thống và cấu hình như bên dưới.
Bây giờ hãy nhấp vào nút 'Tiếp theo'.
Cấu hình cơ sở dữ liệu cho Magento - nhập tất cả thông tin cơ sở dữ liệu của chúng tôi và nhấp vào 'Tiếp theo'.
Đối với cấu hình web, hãy thay đổi 'địa chỉ cửa hàng' thành HTTPS, 'Địa chỉ quản trị Magento' bằng URL đường dẫn quản trị của bạn và bỏ chọn 'Apache Rewrites', vì chúng tôi đang sử dụng máy chủ web Nginx.
Nhấp vào nút 'Tiếp theo' một lần nữa.
Giữ nguyên 'Customize Your Store' theo mặc định và nhấp vào 'Next'.
Nhập tên người dùng và mật khẩu quản trị viên của bạn, sau đó nhấp vào 'Next'.
Và nhấp vào nút 'Install Now' để cài đặt Magento.
Và khi quá trình cài đặt hoàn tất, bạn sẽ nhận được kết quả 'thành công' như bên dưới.
Bây giờ chúng ta cần vô hiệu hóa quyền ghi cho thư mục '/var/www/magento2/app/etc'. Chạy lệnh bên dưới.
Mã:
sudo chmod -w /var/www/magento2/app/etc
Bước 5 - Kiểm tra
Nhập địa chỉ trang chủ URL Magento và đảm bảo bạn nhận được trang chủ mặc định của Magento. Của tôi là: https://magento.hakase-labs.pw/Bây giờ hãy đăng nhập vào bảng điều khiển quản trị Magento bằng cách truy cập URL được xác định trong quá trình cài đặt 'admin_hakase'. Của tôi là:
Nhập tên người dùng và mật khẩu, sau đó nhấp vào nút 'Đăng nhập'.
Và bạn sẽ nhận được bảng điều khiển quản trị Magento như bên dưới.
Magento 2 đã được cài đặt trên Ubuntu 18.04 với máy chủ web Nginx, cơ sở dữ liệu MySQL và PHP-FPM 7.1.
Bổ sung:
Nếu bạn gặp lỗi về cronjob lập chỉ mục Magento bị thiếu, thì bạn có thể giải quyết bằng cách tạo tập lệnh crontab bằng lệnh bên dưới.:
Mã:
cd /var/www/magento2
sudo -u www-data php bin/magento cron:install --force
Mã:
crontab -u www-data -l