Magento là một cửa hàng mã nguồn mở (phần mềm thương mại điện tử) và hệ thống quản lý nội dung cho các trang web thương mại điện tử dựa trên PHP Zend Framework. Magento áp dụng các quy ước của Lập trình hướng đối tượng và kiến trúc MVC (Model-View-Controller) và sử dụng MySQL/MariaDB làm cơ sở dữ liệu. Phần mềm được phát triển đã được Varien Inc. bắt đầu vào năm 2008. Trong những năm qua, Magento đã trở thành một nền tảng đáng tin cậy cho phần mềm thương mại điện tử hỗ trợ các doanh nghiệp trực tuyến trên toàn thế giới.
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt Magento 2.1. Chúng ta sẽ cài đặt Magento 2.1 với Nginx và Php7.0-fpm và MySQL làm cơ sở dữ liệu. Với mục đích này, tôi sẽ sử dụng máy chủ CentOS 7 có bật SELinux.
Cài đặt epel-repository bằng lệnh yum này.
Bây giờ chúng ta có thể cài đặt Nginx từ epel-repository.
Sau khi cài đặt hoàn tất, hãy khởi động Nginx và thêm nó để bắt đầu khi khởi động.
Nginx được khởi động trên cổng 80, bạn có thể kiểm tra điều đó bằng lệnh netstat bên dưới.
Trong trường hợp bạn thấy kết quả 'command not found', bạn có thể cài đặt net-tools như thế này.
Tải xuống và thêm kho lưu trữ webtatic mới vào hệ thống.
Bây giờ hãy chạy lệnh bên dưới để cài đặt PHP-FPM7 với tất cả các gói và tiện ích mở rộng cần thiết cho quá trình cài đặt Magento.
Khi quá trình cài đặt PHP-FPM7 hoàn tất, chúng ta cần định cấu hình nó. Chúng tôi sẽ cấu hình tệp php.ini và tệp cấu hình php-fpm 'www.conf'.
Chỉnh sửa php.ini bằng vim.
Bỏ ghi chú dòng cgi.fix_pathinfo 762 và đổi giá trị thành 0.
Cấu hình giới hạn bộ nhớ, thời gian thực thi tối đa và bật nén đầu ra zlib, đảm bảo bạn đặt các giá trị như hiển thị bên dưới.
Bỏ ghi chú thư mục đường dẫn phiên và đổi thư mục như bên dưới.
Lưu và thoát.
Tiếp theo, chỉnh sửa Tệp cấu hình php-fpm www.conf với lệnh vim.
PHP-FPM7 sẽ chạy dưới người dùng và nhóm 'nginx', hãy thay đổi giá trị thành 'nginx' cho các dòng người dùng và nhóm.
Chúng ta sẽ chạy php-fpm dưới tệp socket, không phải cổng máy chủ. Thay đổi giá trị của dòng listen thành đường dẫn của tệp socket.
Tệp socket cần phải thuộc sở hữu của người dùng và nhóm 'nginx', bỏ chú thích các dòng listen và thay đổi các giá trị như hiển thị bên dưới.
Cuối cùng, bỏ chú thích các dòng môi trường PHP-FPM 366-370.
Lưu và thoát.
Tiếp theo, tạo một thư mục mới cho đường dẫn phiên và vị trí tệp php sock. Sau đó thay đổi chủ sở hữu thành người dùng và nhóm 'nginx'.
Tạo một thư mục mới cho đường dẫn phiên.
Tạo một thư mục mới cho vị trí tệp socket php-fpm.
Cấu hình PHP-FPM7 đã hoàn tất, hãy khởi động daemon ngay bây giờ và cho phép nó khởi động khi khởi động bằng lệnh systemctl bên dưới.
Khi không có lỗi, bạn có thể sử dụng lệnh bên dưới để kiểm tra xem php-fpm có đang chạy trong tệp socket hay không.
Tải xuống và thêm kho lưu trữ MySQL mới để cài đặt MySQL 5.7.
Bây giờ hãy cài đặt MySQL 5.7 từ kho lưu trữ MySQL bằng lệnh yum bên dưới.
Khi quá trình cài đặt hoàn tất, hãy khởi động mysql và thêm nó để bắt đầu khi khởi động.
MySQL 5.7 đã được cài đặt với mật khẩu root mặc định, mật khẩu này được lưu trữ trong tệp mysqld.log. Sử dụng lệnh grep để xem mật khẩu mặc định cho MySQL 5.7. Chạy lệnh bên dưới.
Bây giờ bạn thấy mật khẩu root MySQL hiện tại, bạn nên thay đổi mật khẩu mặc định.
Kết nối với shell mysql bằng người dùng root và mật khẩu mặc định.
Thay đổi mật khẩu root mặc định bằng truy vấn bên dưới. Tôi sẽ sử dụng mật khẩu mới 'Hakase-labs123@' ở đây. Vui lòng chọn một mật khẩu an toàn.
Mật khẩu root MySQL mặc định đã được thay đổi. Tiếp theo, chúng ta cần tạo một người dùng mới và một cơ sở dữ liệu mới để cài đặt Magento.
Chúng ta sẽ tạo một cơ sở dữ liệu mới có tên là 'magentodb' và một người dùng mới 'magentouser' với mật khẩu 'Magento123@'. Sau đó, cấp tất cả các đặc quyền của cơ sở dữ liệu cho người dùng mới. Chạy truy vấn mysql bên dưới.
Quá trình cài đặt và cấu hình MySQL 5.7 đã hoàn tất và một cơ sở dữ liệu để cài đặt Magento đã được tạo.
Cài đặt PHP Composer
Chúng ta sẽ sử dụng Composer để cài đặt phụ thuộc gói PHP. Cài đặt composer bằng lệnh curl bên dưới.
Khi quá trình cài đặt hoàn tất, bạn có thể kiểm tra phiên bản composer như hình bên dưới.
PHP Composer đã được cài đặt.
Tải xuống và giải nén Magento
Đi đến thư mục '/var/www' và tải xuống mã Magento bằng lệnh wget.
Cài đặt unzip bằng yum.
Giải nén mã Magento và đổi tên thư mục thành thư mục 'magento2'.
Cài đặt PHP Dependencies
Đi đến thư mục magento2 và cài đặt tất cả các dependency Magento bằng lệnh composer.
Chờ cài đặt PHP Dependency hoàn tất.
Cấu hình Magento Virtual Host
Đi đến thư mục Nginx và tạo tệp cấu hình máy chủ ảo mới có tên 'magento.conf' trong thư mục 'conf.d'.
Dán cấu hình máy chủ ảo bên dưới.
Lưu và thoát.
Bây giờ hãy kiểm tra cấu hình. Khi không có lỗi, hãy khởi động lại dịch vụ Nginx.
Cài đặt Magento 2.1
Đi đến thư mục magento2 để cài đặt Magento trên dòng lệnh.
Chạy lệnh bên dưới, đảm bảo bạn có cấu hình chính xác. Các giá trị cần thay đổi được giải thích bên dưới.
Thay đổi giá trị cho:
Magento 2.1 đã được cài đặt. Chạy lệnh bên dưới để thay đổi quyền cho thư mục etc và thay đổi chủ sở hữu của thư mục magento2 thành người dùng 'nginx'.
Cấu hình Magento Cron
Cronjob này là cần thiết cho trình lập chỉ mục Magento. Tạo một cronjob mới với tư cách là người dùng 'nginx' (vì magento đang chạy dưới người dùng và nhóm nginx).
Dán cấu hình bên dưới.
Lưu và thoát.
SELinux đang ở chế độ 'Enforcing'.
Cài đặt công cụ quản lý SELinux 'policycoreutils-python' bằng lệnh yum bên dưới.
Đi tới thư mục '/var/www/'.
Chạy các lệnh bên dưới để thay đổi ngữ cảnh bảo mật cho các tệp và thư mục Magento.
Cấu hình SELinux đã hoàn tất. Bây giờ chúng ta cần cấu hình firewalld.
Cài đặt gói firewalld nếu bạn chưa có nó trên máy chủ của mình.
Khởi động tường lửa và thêm firewalld để bắt đầu khi khởi động.
Mở các cổng cho HTTP và HTTPS để chúng ta có thể truy cập URL Magento từ trình duyệt web.
Xem các cổng mở cho các dịch vụ bằng lệnh bên dưới.
HTTP và HTTPS đã sẵn sàng để kết nối.
magento.hakase-labs.com
Và bạn sẽ thấy trang chủ Magento mặc định.
Tiếp theo, đăng nhập vào bảng điều khiển quản trị bằng cách mở URL adminlogin.
magento.hakase-labs.com/adminlogin
Đăng nhập bằng tên người dùng và mật khẩu quản trị của bạn.
Bảng điều khiển quản trị Magento.
Magento 2.1 đã được cài đặt thành công với Nginx, PHP-FPM7 và MySQL 5.7 trên máy chủ CentOS 7.
Trong hướng dẫn này, tôi sẽ hướng dẫn bạn cài đặt Magento 2.1. Chúng ta sẽ cài đặt Magento 2.1 với Nginx và Php7.0-fpm và MySQL làm cơ sở dữ liệu. Với mục đích này, tôi sẽ sử dụng máy chủ CentOS 7 có bật SELinux.
Bước 1 - Cài đặt Nginx
Trong bước này, chúng ta sẽ cài đặt Nginx từ epel-repository. Epel không khả dụng theo mặc định, vì vậy chúng ta cần cài đặt epel-repository trước khi cài đặt Nginx.Cài đặt epel-repository bằng lệnh yum này.
Mã:
yum -y install epel-release
Mã:
yum -y install nginx
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
Trong trường hợp bạn thấy kết quả 'command not found', bạn có thể cài đặt net-tools như thế này.
Mã:
yum -y install net-tools
Bước 2 - Cài đặt và cấu hình PHP-FPM
Trong hướng dẫn này, chúng ta sẽ sử dụng PHP-FPM 7 để cài đặt Magento. Tôi sẽ sử dụng các gói PHP 7 từ Webtaticrepository.Tải xuống và thêm kho lưu trữ webtatic mới vào hệ thống.
Mã:
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Mã:
yum -y install php70w-fpm php70w-mcrypt php70w-curl php70w-cli php70w-mysql php70w-gd php70w-xsl php70w-json php70w-intl php70w-pear php70w-devel php70w-mbstring php70w-zip php70w-soap
Chỉnh sửa php.ini bằng vim.
Mã:
vim /etc/php.ini
Mã:
cgi.fix_pathinfo=0
Mã:
memory_limit = 512M
max_execution_time = 1800
zlib.output_compression = On
Mã:
session.save_path = "/var/lib/php/session"
Tiếp theo, chỉnh sửa Tệp cấu hình php-fpm www.conf với lệnh vim.
Mã:
vim /etc/php-fpm.d/www.conf
Mã:
user = nginx
group = nginx
Mã:
listen = /var/run/php/php-fpm.sock
Mã:
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
Mã:
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Tiếp theo, tạo một thư mục mới cho đường dẫn phiên và vị trí tệp php sock. Sau đó thay đổi chủ sở hữu thành người dùng và nhóm 'nginx'.
Tạo một thư mục mới cho đường dẫn phiên.
Mã:
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/
Mã:
mkdir -p /run/php/
chown -R nginx:nginx /run/php/
Mã:
systemctl start php-fpm
systemctl enable php-fpm
Mã:
netstat -pl | grep php-fpm.sock
Bước 3 - Cài đặt MySQL 5.7 Server
Magento 2.1 yêu cầu phiên bản MySQL hiện tại, bạn có thể sử dụng MySQL 5.6 hoặc 5.7 để cài đặt. Trong hướng dẫn này, chúng tôi sẽ sử dụng MySQL 5.7 có thể được cài đặt từ kho lưu trữ MySQL chính thức. Vì vậy, trước tiên chúng ta cần thêm kho lưu trữ MySQL mới.Tải xuống và thêm kho lưu trữ MySQL mới để cài đặt MySQL 5.7.
Mã:
yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
Mã:
yum install mysql-community-server
Mã:
systemctl start mysqld
systemctl enable mysqld
Mã:
grep 'temporary' /var/log/mysqld.log
Bây giờ bạn thấy mật khẩu root MySQL hiện tại, bạn nên thay đổi mật khẩu mặc định.
Kết nối với shell mysql bằng người dùng root và mật khẩu mặc định.
Mã:
mysql -u root -p
TYPE DEFAULT PASSWORD
Mã:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Hakase-labs123@';
flush privileges;
Mật khẩu root MySQL mặc định đã được thay đổi. Tiếp theo, chúng ta cần tạo một người dùng mới và một cơ sở dữ liệu mới để cài đặt Magento.
Chúng ta sẽ tạo một cơ sở dữ liệu mới có tên là 'magentodb' và một người dùng mới 'magentouser' với mật khẩu 'Magento123@'. Sau đó, cấp tất cả các đặc quyền của cơ sở dữ liệu cho người dùng mới. Chạy truy vấn mysql bên dưới.
Mã:
create database magentodb;
create user magentouser@localhost defined by 'Magento123@';
grant all privileges on magentodb.* to magentouser@localhost defined by 'Magento123@';
flush privileges;
Quá trình cài đặt và cấu hình MySQL 5.7 đã hoàn tất và một cơ sở dữ liệu để cài đặt Magento đã được tạo.
Bước 4 Cài đặt và cấu hình Magento
Trong bước này, chúng ta sẽ bắt đầu cài đặt và cấu hình Magento. Đối với thư mục gốc web, chúng ta sẽ sử dụng thư mục '/var/www/magento2'. Chúng ta cần PHP composer để cài đặt gói Magento.Cài đặt PHP Composer
Chúng ta sẽ sử dụng Composer để cài đặt phụ thuộc gói PHP. Cài đặt composer bằng lệnh curl bên dưới.
Mã:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Mã:
composer -v
PHP Composer đã được cài đặt.
Tải xuống và giải nén Magento
Đi đến thư mục '/var/www' và tải xuống mã Magento bằng lệnh wget.
Mã:
cd /var/www/
wget https://github.com/magento/magento2/archive/2.1.zip
Mã:
yum -y install unzip
Mã:
unzip 2.1.zip
mv magento2-2.1 magento2
Đi đến thư mục magento2 và cài đặt tất cả các dependency Magento bằng lệnh composer.
Mã:
cd magento2
composer install -v
Chờ cài đặt PHP Dependency hoàn tất.
Cấu hình Magento Virtual Host
Đi đến thư mục Nginx và tạo tệp cấu hình máy chủ ảo mới có tên 'magento.conf' trong thư mục 'conf.d'.
Mã:
cd /etc/nginx/
vim conf.d/magento.conf
Mã:
upstream fastcgi_backend {
server unix:/run/php/php-fpm.sock;
}
server {
listen 80;
server_name magento.hakase-labs.com;
set $MAGE_ROOT /var/www/magento2;
set $MAGE_MODE developer;
include /var/www/magento2/nginx.conf.sample;
}
Bây giờ hãy kiểm tra cấu hình. Khi không có lỗi, hãy khởi động lại dịch vụ Nginx.
Mã:
nginx -t
systemctl restart nginx
Cài đặt Magento 2.1
Đi đến thư mục magento2 để cài đặt Magento trên dòng lệnh.
Mã:
cd /var/www/magento2
Mã:
cài đặt bin/magento:cài đặt --backend-frontname="adminlogin" \
--key="biY8vdWx4w8KV5Q59380Fejy36l6ssUb" \
--db-host="localhost" \
--db-name="magentodb" \
--db-user="magentouser" \
--db-password="Magento123@" \
--language="en_US" \
--currency="USD" \
--timezone="America/New_York" \
--use-rewrites=1 \
--use-secure=0 \
--base-url="http://magento.hakase-labs.com" \
--base-url-secure="https://magento.hakase-labs.com" \
--admin-user=adminuser \
--admin-password=admin123@ \
[emailprotected] \
--admin-firstname=admin \
--admin-lastname=user \
--cleanup-database
- --backend-frontname: Trang đăng nhập quản trị Magento "adminlogin"
- --key: tạo khóa riêng của bạn
- --db-host: Máy chủ cơ sở dữ liệu localhost
- --db-name: tên cơ sở dữ liệu 'magentodb'
- --db-user: người dùng cơ sở dữ liệu 'magentouser'
- --db-password: mật khẩu cơ sở dữ liệu 'Magento123@'
- --base-url: Magento URL
- --admin-user: Người dùng quản trị của bạn
- --admin-password: Mật khẩu quản trị Magento của bạn
- --admin-email: Địa chỉ email của bạn
Magento 2.1 đã được cài đặt. Chạy lệnh bên dưới để thay đổi quyền cho thư mục etc và thay đổi chủ sở hữu của thư mục magento2 thành người dùng 'nginx'.
Mã:
chmod 700 /var/www/magento2/app/etc
chown -R nginx:nginx /var/www/magento2
Cronjob này là cần thiết cho trình lập chỉ mục Magento. Tạo một cronjob mới với tư cách là người dùng 'nginx' (vì magento đang chạy dưới người dùng và nhóm nginx).
Mã:
crontab -u nginx -e
Mã:
* * * * * /usr/bin/php /var/www/magento2/bin/magento cron:run | grep -v "Ran jobs by schedule" >> /var/www/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/magento2/update/cron.php >> /var/www/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/magento2/bin/magento setup:cron:run >> /var/www/magento2/var/log/setup.cron.log
Bước 5 - Cấu hình SELinux và Firewalld
Trong hướng dẫn này, chúng tôi sẽ để SELinux ở chế độ 'Enforcing'. Chạy các lệnh bên dưới để kiểm tra trạng thái SELinux.
Mã:
sestatus
SELinux đang ở chế độ 'Enforcing'.
Cài đặt công cụ quản lý SELinux 'policycoreutils-python' bằng lệnh yum bên dưới.
Mã:
yum -y install policycoreutils-python
Mã:
cd /var/www/
Mã:
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/app/etc(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/var(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/media(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/magento2/pub/static(/.*)?'
restorecon -Rv '/var/www/magento2/'
Cài đặt gói firewalld nếu bạn chưa có nó trên máy chủ của mình.
Mã:
yum -y install firewalld
Mã:
systemctl start firewalld
systemctl enable firewalld
Mã:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
Mã:
firewall-cmd --list-all
HTTP và HTTPS đã sẵn sàng để kết nối.
Bước 6 - Kiểm tra
Mở trình duyệt web của bạn và sau đó duyệt URL Magento. Của tôi là:magento.hakase-labs.com
Và bạn sẽ thấy trang chủ Magento mặc định.
Tiếp theo, đăng nhập vào bảng điều khiển quản trị bằng cách mở URL adminlogin.
magento.hakase-labs.com/adminlogin
Đăng nhập bằng tên người dùng và mật khẩu quản trị của bạn.
Bảng điều khiển quản trị Magento.
Magento 2.1 đã được cài đặt thành công với Nginx, PHP-FPM7 và MySQL 5.7 trên máy chủ CentOS 7.