Cách cài đặt PrestaShop trên Rocky Linux 9

theanh

Administrator
Nhân viên
PrestaShop là một ứng dụng web thương mại điện tử mã nguồn mở được viết bằng khuôn khổ Symfony PHP. Nó cho phép bạn thiết kế, xây dựng và lưu trữ một cửa hàng trực tuyến để bán sản phẩm, nhận thanh toán và quản lý tất cả các khía cạnh liên quan. Nó đang được sử dụng bởi hơn 300.000 trang web khiến nó trở thành một trong những nền tảng thương mại điện tử phổ biến nhất. Nó hỗ trợ các mô-đun cho phép bạn mở rộng chức năng của nó hơn nữa. Bạn có thể tùy chỉnh nó bằng nhiều chủ đề chất lượng cao. Nó cung cấp các mẫu tùy chỉnh, cổng thanh toán an toàn, quản lý hàng tồn kho và các công cụ thân thiện với SEO để tối ưu hóa thứ hạng của công cụ tìm kiếm.

Trong hướng dẫn này, bạn sẽ học cách cài đặt Prestashop trên máy chủ Rocky Linux 9.

Điều kiện tiên quyết​


  • Máy chủ chạy Rocky Linux 9 với tối thiểu 1 GB RAM.

  • Người dùng không phải root có quyền sudo.

  • Tên miền đủ điều kiện (FQDN) như prestashop.example.com trỏ đến máy chủ của bạn.

  • Tài khoản SMTP có dịch vụ email như Amazon SES hoặc Mailgun.

  • Mọi thứ đã được cập nhật.
Mã:
$ sudo dnf update
[*]
Cần có một số gói thiết yếu để chạy hướng dẫn và Prestashop. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:
$ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -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. Rocky Linux sử dụng Tường lửa Firewalld. Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --state
running
Tường lửa hoạt động với các vùng khác nhau và vùng công cộng là vùng mặc định mà chúng ta sẽ sử dụng. Liệt kê tất cả các dịch vụ và cổng đang hoạt động trên tường lửa.
Mã:
$ sudo firewall-cmd --permanent --list-services
Nó sẽ hiển thị đầu ra sau.
Mã:
cockpit dhcpv6-client ssh
Cho phép HTTP và HTTPS cổng.
Mã:
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
Kiểm tra lại trạng thái của tường lửa.
Mã:
$ sudo firewall-cmd --permanent --list-services
Bạn sẽ thấy một đầu ra.
Mã:
cockpit dhcpv6-client http https ssh
Tải lại tường lửa để kích hoạt các thay đổi.
Mã:
$ sudo firewall-cmd --reload

Bước 2 - Cài đặt Nginx​

Rocky Linux 9 được tích hợp sẵn 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.

Tạo và mở tệp /etc/yum.repos.d/nginx.repo để chỉnh sửa.
Mã:
$ sudo nano /etc/yum.repos.d/nginx.repo
Dán mã sau vào đó.
Mã:
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Sau khi hoàn tất, hãy lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Cài đặt Nginx.
Mã:
$ sudo dnf install nginx -y
Xác minh cài đặt.
Mã:
$ nginx -v
nginx version: nginx/1.24.0
Bật và khởi động máy chủ Nginx dịch vụ.
Mã:
$ sudo systemctl enable nginx --now
Kiểm tra trạng thái dịch vụ.
Mã:
$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: disabled) Active: active (running) since Sat 2023-11-25 10:58:03 UTC; 5s ago Docs: http://nginx.org/en/docs/ Process: 4220 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS) Main PID: 4222 (nginx) Tasks: 2 (limit: 10841) Memory: 1.9M CPU: 9ms CGroup: /system.slice/nginx.service ??4222 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf" ??4223 "nginx: worker process"
Mở địa chỉ IP của máy chủ trong trình duyệt web của bạn. Bạn sẽ thấy trang sau, điều đó có nghĩa là máy chủ của bạn đã hoạt động.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22574%22%20height=%22268%22%3E%3C/svg%3E

Bước 3 - Cài đặt PHP và tiện ích mở rộng​

Rocky Linux 9 được cài sẵn PHP 8.1 theo mặc định. Để 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, chúng ta cần sử dụng kho lưu trữ REMI.

Bước đầu tiên là lấy kho lưu trữ Epel.
Mã:
$ sudo dnf install epel-release -y
Tiếp theo, cài đặt kho lưu trữ Remi.
Mã:
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
Kiểm tra PHP khả dụng streams.
Mã:
$ dnf module list php -y
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
php remi-8.3 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
Phiên bản mặc định là 8.1. Tại thời điểm viết hướng dẫn này, Prestashop tương thích với PHP 8.1. Do đó, hãy bật kho lưu trữ PHP 8.1 của Remi.
Mã:
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.1
Cài đặt PHP và các tiện ích mở rộng của nó theo yêu cầu của Prestashop.
Mã:
$ sudo dnf install php php-bcmath php-cli php-curl php-common \ php-fpm php-gd php-gmp php-intl php-mbstring \ php-mysql php-opcache php-xml php-zip -y
Kiểm tra phiên bản PHP đã cài đặt.
Mã:
$ php --version
PHP 8.1.26 (cli) (built: Nov 21 2023 21:53:48) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.26, Copyright (c) Zend Technologies with Zend OPcache v8.1.26, Copyright (c), by Zend Technologies
Kích hoạt và khởi động dịch vụ PHP-FPM.
Mã:
$ sudo systemctl enable php-fpm --now
Kiểm tra trạng thái của dịch vụ.
Mã:
$ sudo systemctl status php-fpm
? php-fpm.service - The PHP FastCGI Process Manager Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; preset: disabled) Active: active (running) since Sat 2023-11-25 12:54:31 UTC; 2s ago Main PID: 6160 (php-fpm) Status: "Ready to handle connections" Tasks: 6 (limit: 10841) Memory: 15.2M CPU: 56ms CGroup: /system.slice/php-fpm.service ??6160 "php-fpm: master process (/etc/php-fpm.conf)" ??6161 "php-fpm: pool www" ??6162 "php-fpm: pool www" ??6163 "php-fpm: pool www" ??6164 "php-fpm: pool www" ??6165 "php-fpm: pool www"

Bước 4 - Cài đặt Percona MySQL Server​

Prestashop yêu cầu máy chủ cơ sở dữ liệu MySQL để lưu trữ dữ liệu. Nhưng thay vì cài đặt MySQL, chúng tôi sẽ cài đặt máy chủ Percona MySQL. Nó hoạt động như một sự thay thế trực tiếp cho MySQL và cung cấp nhiều tính năng và bảo mật hơn.

Bước đầu tiên là cài đặt kho lưu trữ phát hành Percona cho Rocky Linux.
Mã:
$ sudo dnf install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm
Nếu bạn gặp lỗi sau, bạn có thể bỏ qua và tiếp tục vì nó không ảnh hưởng đến quá trình cài đặt. Khóa GPG vẫn sẽ được nhập sau đó.
Mã:
error: can't create transaction lock on /var/lib/rpm/.rpm.lock (Resource temporarily unavailable)
error: /etc/pki/rpm-gpg/RPM-GPG-KEY-Percona: key 1 import failed.
Sau khi kho lưu trữ được cài đặt, hãy thiết lập kho lưu trữ Percona Server cho MySQL 8.0 bằng cách đưa ra lệnh sau.
Mã:
$ percona-release setup ps80
Lệnh trên hỏi bạn có muốn tắt mô-đun MySQL mặc định không. Nhập y để tiếp tục. Nó sẽ vô hiệu hóa mô-đun cài đặt MySQL và kích hoạt mô-đun Percona MySQL.

Cài đặt Percona Server cho MySQL 8.0.
Mã:
$ sudo dnf -y install percona-server-server
Điều này sẽ cài đặt Percona Server và Client cho MySQL, đây là các gói cơ bản mà bạn cần hiện tại.

Xác minh cài đặt.
Mã:
$ mysql --version
mysql Ver 8.0.34-26 for Linux on x86_64 (Percona Server (GPL), Release 26, Revision 0fe62c85)
Khởi động dịch vụ MySQL.
Mã:
$ sudo systemctl start mysqld
Kiểm tra trạng thái của dịch vụ MySQL.
Mã:
$ sudo systemctl status mysqld
? mysqld.service - MySQL Server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; preset: disabled) Active: active (running) since Sun 2023-11-26 06:25:37 UTC; 7s ago Docs: man:mysqld(8) http://dev.mysql.com/doc/refman/en/using-systemd.html Process: 6522 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS) Main PID: 6598 (mysqld) Status: "Server is operational" Tasks: 39 (limit: 10841) Memory: 486.8M CPU: 8.131s CGroup: /system.slice/mysqld.service ??6598 /usr/sbin/mysqld
Nov 26 06:25:28 prestashop.example.com systemd[1]: Starting MySQL Server...
Nov 26 06:25:37 prestashop.example.com systemd[1]: Started MySQL Server.
Percona tạo mật khẩu gốc tạm thời trong quá trình cài đặt. Lấy mật khẩu đó bằng lệnh sau.
Mã:
$ sudo grep "temporary password" /var/log/mysqld.log
2023-11-26T06:25:33.316696Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: (sDeLSgjs7pI
Đăng nhập vào shell MySQL.
Mã:
$ sudo mysql -u root -p
Chạy thiết lập bảo mật MySQL wizard.
Mã:
$ sudo mysql_secure_installation
Nhập mật khẩu gốc khi được nhắc.
Mã:
Securing the MySQL server deployment.
Enter password for user root:
Mật khẩu tạm thời đã hết hạn và bạn sẽ được nhắc đặt mật khẩu gốc mới. Chọn mật khẩu mạnh cho tài khoản gốc. Mật khẩu của bạn phải đáp ứng các yêu cầu của chính sách mật khẩu hiện tại, nghĩa là mật khẩu phải có một ký tự viết thường, một ký tự viết hoa, một số và một ký tự đặc biệt.
Mã:
The existing password for the user account root has expired. Please set a new password.
New password:
Re-enter new password:
Tiếp theo, độ mạnh của mật khẩu sẽ được hiển thị và bạn sẽ được hỏi xem có muốn thay đổi mật khẩu hay không. Nhập N để tiếp tục.
Mã:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.
Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : N ... skipping.
Nhập Y để xóa người dùng ẩn danh.
Mã:
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.
Loại Y để không cho phép đăng nhập root từ xa.
Mã:
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.
Loại Y để xóa cơ sở dữ liệu thử nghiệm.
Mã:
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.
Và cuối cùng, nhập N để tải lại bảng đặc quyền.
Mã:
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!
Vậy là xong. Lần tới khi bạn muốn đăng nhập vào shell MySQL, hãy sử dụng lệnh sau và nhập mật khẩu root khi được nhắc.
Mã:
$ sudo mysql -u root -p
Bạn sẽ nhận được shell MySQL sau nhắc nhở.
Mã:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 8.0.34-26 Percona Server (GPL), Release 26, Revision 0fe62c85
Copyright (c) 2009-2023 Percona LLC and/or its affiliates
Copyright (c) 2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
Nhập exit để thoát khỏi shell.

Bước 5 - Cấu hình Percona MySQL Server​

Đăng nhập vào MySQL vỏ.
Mã:
$ sudo mysql -u root -p
Tạo cơ sở dữ liệu MySQL mới, người dùng cơ sở dữ liệu và mật khẩu cho cài đặt Prestashop của bạn.
Mã:
mysql> CREATE DATABASE prestashop COLLATE utf8mb4_general_ci;
mysql> CREATE USER 'prestauser'@'localhost' IDENTIFIED BY 'Your_password2';
mysql> GRANT ALL PRIVILEGES ON prestashop.* TO 'prestauser'@'localhost';
Thay thế prestashop, prestauseryourpassword bằng thông tin đăng nhập bạn chọn. Chọn một mật khẩu mạnh và đảm bảo tuân thủ chính sách mật khẩu như mô tả ở trên.

Xóa các đặc quyền để đảm bảo chúng được lưu trong phiên hiện tại.
Mã:
mysql> FLUSH PRIVILEGES;
Thoát khỏi shell MySQL.
Mã:
mysql> exit

Bước 6 - Tải xuống Prestashop​

Tạo thư mục cho Prestashop.
Mã:
$ sudo mkdir /var/www/html/prestashop -p
Prestashop có hai phiên bản - phiên bản Cơ bản có thương hiệu và phiên bản không có thương hiệu. Phiên bản có thương hiệu có sẵn trên trang web của Prestashop trong khi phiên bản không có thương hiệu có sẵn trên kho lưu trữ GitHub. Sự khác biệt giữa hai phiên bản là phiên bản có thương hiệu chứa các mô-đun bổ sung bao gồm bộ xử lý thanh toán, các mô-đun Facebook và Google để quảng cáo và SEO, cùng nhiều mô-đun khác để kết nối với Prestashop và mục đích phân tích.

Phiên bản cơ bản được phát hành sau phiên bản không có thương hiệu. Do đó, tại thời điểm viết hướng dẫn này, phiên bản mới nhất của phiên bản cơ bản có sẵn là 8.1.1 và phiên bản không có thương hiệu là 8.1.2. Đối với hướng dẫn của chúng tôi, chúng tôi sẽ sử dụng phiên bản có thương hiệu cơ bản. Bạn có thể sử dụng phiên bản không có thương hiệu nếu muốn. Quy trình cài đặt cho cả hai phiên bản đều giống hệt nhau.

Tải xuống phiên bản mới nhất bằng lệnh sau.
Mã:
$ cd /tmp
$ wget https://assets.prestashop3.com/dst/edition/corporate/8.1.1/prestashop_edition_basic_version_8.1.1.zip
Bạn có thể lấy liên kết bằng cách truy cập trang tải xuống Prestashop, nhập email của bạn và tải xuống tệp. Phiên bản không có nhãn hiệu có thể được lấy từ trang Bản phát hành GitHub của Prestashop.

Giải nén tệp lưu trữ đã tải xuống.
Mã:
$ unzip prestashop_*.zip
Kho lưu trữ này có một tệp zip khác có tên prestashop.zip chứa tất cả các tệp. Giải nén các tập tin vào thư mục Prestashop.
Mã:
$ sudo unzip prestashop.zip -d /var/www/html/prestashop
Thay đổi chủ sở hữu của thư mục Prestashop thành nginx user.
Mã:
$ sudo chown -R nginx: /var/www/html/prestashop

Bước 7 - Cài đặt SSL​

Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Chúng ta sẽ sử dụng trình cài đặt gói Snapd cho mục đích đó. Vì Rocky Linux không đi kèm với nó, hãy cài đặt trình cài đặt Snapd. Nó yêu cầu kho lưu trữ EPEL (Gói bổ sung cho Enterprise Linux) để hoạt động. Nhưng vì chúng ta đã cài đặt nó ở bước 3, nên chúng ta có thể trực tiếp tiến hành.

Cài đặt Snapd.
Mã:
$ sudo dnf install -y snapd
Bật và khởi động dịch vụ Snap.
Mã:
$ sudo systemctl enable snapd --now
Cài đặt gói lõi Snap và đảm bảo rằng phiên bản Snapd của bạn là ngày.
Mã:
$ sudo snap install core && sudo snap refresh core
Tạo các liên kết cần thiết để Snapd hoạt động.
Mã:
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Cài đặt Certbot.
Mã:
$ sudo snap install --classic 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 /usr/bin thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Kiểm tra xem Certbot có hoạt động bình thường không.
Mã:
$ certbot --version
certbot 2.7.4
Chạy lệnh sau để tạo SSL Chứng chỉ.
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d prestashop.example.com
Lệnh trên sẽ tải chứng chỉ xuống thư mục /etc/letsencrypt/live/prestashop.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
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Mã:
$ sudo systemctl list-timers
Bạn sẽ thấy 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-11-26 17:12:40 UTC 1h 34min left Sun 2023-11-26 15:25:36 UTC 12min ago dnf-makecache.timer dnf-makecache.service
Sun 2023-11-26 17:48:00 UTC 2h 10min left - - snap.certbot.renew.timer snap.certbot.renew.service
Mon 2023-11-27 00:00:00 UTC 8h left Sun 2023-11-26 00:00:00 UTC 15h ago logrotate.timer logrotate.service
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.
Mã:
$ sudo certbot renew --dry-run
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.

Bước 8 - Cấu hình SELinux​

Thay đổi ngữ cảnh bảo mật tệp cho Prestashop.
Mã:
$ sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/html/prestashop(/.*)?"
Áp dụng chính sách.
Mã:
$ sudo restorecon -Rv /var/www/html/prestashop/
Áp dụng chính sách để cho phép Nginx cấp quyền truy cập vào MariaDB.
Mã:
$ sudo setsebool -P httpd_can_network_connect_db 1
Áp dụng chính sách cho phép kết nối đến các máy chủ bên ngoài. Điều này là cần thiết để gửi email.
Mã:
$ sudo setsebool -P httpd_can_network_connect 1
Với MariaDB 10.11, bạn sẽ gặp phải một vấn đề khác là SELinux ngăn PHP-FPM kết nối với MariaDB. Vấn đề này có thể được giải quyết bằng cách cài đặt mô-đun SELinux. Bước đầu tiên là tạo tệp type enforcement.

Tạo tệp my-phpfpm.te trong thư mục gốc của bạn và mở tệp đó chỉnh sửa.
Mã:
$ cd ~
$ nano my-phpfpm.te
Dán mã sau vào đó.
Mã:
module my-phpfpm 1.0;
require { type unconfined_service_t; type httpd_t; type httpd_sys_content_t; class dir write; class unix_stream_socket connectto;
}
#============= httpd_t ==============
#!!!! This avc is allowed in the current policy
allow httpd_t httpd_sys_content_t:dir write;
#!!!! This avc is allowed in the current policy
allow httpd_t unconfined_service_t:unix_stream_socket connectto;
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Bước tiếp theo là chuyển đổi tệp thành mô-đun chính sách bằng lệnh sau. Không sửa đổi tên tệp trong lệnh, nếu không, lệnh sẽ không hoạt động. Mô-đun được đặt tên là my-phpfpm và tên tệp phải giống với tên mô-đun.
Mã:
$ sudo checkmodule -M -m -o my-phpfpm.mod my-phpfpm.te
Tiếp theo, chúng ta cần biên dịch mô-đun chính sách để tạo chính sách gói.
Mã:
$ sudo semodule_package -o my-phpfpm.pp -m my-phpfpm.mod
Bước cuối cùng là tải gói chính sách bằng lệnh semodule cài đặt chính sách đã sử dụng.
Mã:
$ sudo semodule -i my-phpfpm.pp

Bước 9 - Cấu hình PHP-FPM​

Mở php.ini cho chỉnh sửa.
Mã:
$ sudo nano /etc/php.ini
Để thiết lập kích thước tải tệp lên, hãy thay đổi giá trị của upload_max_filesizepost_max_size biến. Giá trị này quyết định kích thước tệp bạn có thể tải lên Prestashop. Theo mặc định, nó được đặt ở mức 10MB, đây là mức chúng ta sẽ cấu hình bằng PHP.
Mã:
$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 16M/' /etc/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 16M/' /etc/php.ini
Cấu hình giới hạn bộ nhớ của PHP tùy thuộc vào tài nguyên máy chủ và yêu cầu của bạn.
Mã:
$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php.ini
Mở tệp /etc/php-fpm.d/www.conf.
Mã:
$ sudo nano /etc/php-fpm.d/www.conf
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 user=apachegroup=apache 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
...
Tìm , , listen.mode = 0660 các dòng trong tệp và thay đổi chúng như sau sau khi bỏ chú thích.
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
listen.mode = 0660
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Khởi động lại quy trình PHP-fpm. Hãy đảm bảo bạn đã cài đặt Nginx trước khi khởi động lại dịch vụ PHP, nếu không, dịch vụ sẽ không thành công vì không thể tìm thấy nhóm nginx.
Mã:
$ sudo systemctl restart php-fpm
Thay đổi nhóm thư mục phiên PHP thành Nginx.
Mã:
$ sudo chgrp -R nginx /var/lib/php/session

Bước 10 - Cấu hình Nginx​

Mở tệp /etc/nginx/nginx.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
Thêm dòng sau vào trước dòng include /etc/nginx/conf.d/*.conf;.
Mã:
server_names_hash_bucket_size 64;
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 /etc/nginx/conf.d/prestashop.conf để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/prestashop.conf
Dán mã sau vào đó. Thay thế prestashop.example.com bằng tên miền của bạn. Đảm bảo giá trị của client_max_body_size được đặt thành 10MB, đây là kích thước tải lên mặc định của tệp trong Prestashop. Đây là giá trị giống với giá trị chúng ta đã định cấu hình với PHP trước đó.

Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.

Xác minh cấu hình Nginx của bạn.
Mã:
$ sudo nginx -t
Khởi động lại máy chủ Nginx.
Mã:
$ sudo systemctl restart nginx

Bước 11 - Cài đặt Prestashop​

Truy cập URL https://prestashop.example.com trong trình duyệt của bạn và bạn sẽ thấy màn hình cài đặt sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22526%22%3E%3C/svg%3E


Nhấp vào Tiếp theo để chuyển sang trang tiếp theo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22626%22%3E%3C/svg%3E


Bạn sẽ được hiển thị Giấy phép Prestashop. Đánh dấu vào nút Tôi đồng ý với các điều khoản và điều kiện trên để đồng ý với giấy phép và nhấp vào Tiếp theo để tiếp tục.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22615%22%20height=%22750%22%3E%3C/svg%3E


Tiếp theo, bạn sẽ được yêu cầu chia sẻ thông tin về cửa hàng. Đặt tên cho cửa hàng, quốc gia, múi giờ và loại cửa hàng của bạn, đồng thời bật tùy chọn SSL. Ngoài ra, hãy nhập tên tài khoản, địa chỉ email và mật khẩu của bạn để đăng nhập vào cửa hàng. Nhấp vào Tiếp theo khi bạn hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22519%22%3E%3C/svg%3E


Tiếp theo, bạn sẽ được hỏi có muốn thêm một số sản phẩm demo vào cửa hàng không. Chọn không nếu bạn không muốn. Ngoài ra, hãy chọn tùy chọn Cài đặt tất cả các mô-đun hoặc bạn có thể chọn các mô-đun bạn muốn cài đặt. Nhấp vào Tiếp theo khi bạn hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22687%22%3E%3C/svg%3E


Tiếp theo, nhập thông tin xác thực cơ sở dữ liệu mà chúng ta đã tạo ở bước 5. Giữ nguyên các tùy chọn khác. Nhấp vào tùy chọn Kiểm tra cơ sở dữ liệu để xác minh kết nối.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22721%22%3E%3C/svg%3E


Nhấp vào Tiếp theo khi kết nối thành công với cơ sở dữ liệu để chuyển sang trang tiếp theo.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22489%22%3E%3C/svg%3E


Tại đây bạn sẽ thấy tiến trình cài đặt Prestashop. Sau khi hoàn tất, nó sẽ tự động mở trang sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22612%22%3E%3C/svg%3E


Nhấp vào nút Quản lý cửa hàng của bạn để mở bảng điều khiển quản trị để thiết lập cửa hàng của bạn.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22531%22%20height=%22478%22%3E%3C/svg%3E


Tại đây, bạn sẽ nhận cảnh báo về việc xóa thư mục install trước khi thử quản lý cửa hàng để cải thiện bảo mật. Đăng nhập lại vào trang web của bạn qua SSH và chạy lệnh sau.
Mã:
$ sudo rm -rf /var/www/html/petrashop/install
Quay lại trang cuối cùng của trình cài đặt và mở lại URL. Nếu bạn nhận thấy, URL trang quản trị được ngẫu nhiên hóa. Điều này được thực hiện để cải thiện bảo mật. Mỗi lần cài đặt Prestashop sẽ có một URL quản trị khác nhau. Đối với hướng dẫn của chúng tôi, liên kết được tạo là https://prestashop.example.com/admin705saygwpwquwnhixx1. Bạn sẽ nhận được trang đăng nhập sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22523%22%20height=%22632%22%3E%3C/svg%3E


Nhập thông tin tài khoản của bạn và nhấp vào nút ĐĂNG NHẬP để truy cập bảng điều khiển.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22515%22%3E%3C/svg%3E


Trang cửa hàng của Prestashop dành cho cài đặt mặc định sẽ trông như sau.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22610%22%20height=%22750%22%3E%3C/svg%3E


Bạn có thể bắt đầu sử dụng Prestashop từ đây.

Bước 12 - Cập nhật Prestashop​

Có một số cách để cập nhật Prestashop. Cách dễ nhất là sử dụng mô-đun trợ lý nâng cấp tích hợp sẵn. Cài đặt Prestashop của bạn được cung cấp kèm theo mô-đun.

Bước đầu tiên là đưa cửa hàng của bạn vào chế độ bảo trì. Nhấp vào Cấu hình >> Tham số cửa hàng >> Tùy chọn Chung từ menu bên trái trong trang quản trị. Chuyển sang tab bảo trì trên trang.

Vô hiệu hóa cửa hàng và thêm địa chỉ IP của bạn làm IP bảo trì bằng cách nhấp vào nút Thêm IP của tôi. Thao tác này sẽ đảm bảo bạn có thể truy cập vào cửa hàng ngay cả khi cửa hàng đang được bảo trì. Nhấp vào nút Lưu khi hoàn tất.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22606%22%3E%3C/svg%3E


Tiếp theo, mở trang Trình quản lý mô-đun trên bảng quản trị của bạn bằng cách chọn Cải thiện >> Mô-đun >> Tùy chọn Trình quản lý mô-đun ở phía bên trái.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22210%22%20height=%22643%22%3E%3C/svg%3E


Khi vào đó, hãy cài đặt mô-đun Nâng cấp 1 lần nhấp bằng cách nhấp vào nút Cài đặt. Sau khi cài đặt, hãy nhấp vào nút Cấu hình để mở trang mới, tại đó bạn cấu hình các thiết lập trước khi thực hiện nâng cấp.

Phần đầu tiên của trang liệt kê một số kiểm tra trước khi nâng cấp. Tất cả các kiểm tra phải được đáp ứng trước khi có thể thực hiện nâng cấp.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22558%22%3E%3C/svg%3E


Cấu hình đầu tiên cho phép bạn chọn loại nâng cấp bạn muốn chạy. Vì chúng tôi đang sử dụng phiên bản cơ bản 8.1.1, nên phiên bản mã nguồn mở 8.1.2 có sẵn để nâng cấp. Bạn nên sử dụng các nhánh phụ/chính.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22672%22%3E%3C/svg%3E


Cuộn xuống trang đến Tùy chọn sao lưu, tại đây bạn có thể chọn Prestashop để sao lưu các tệp, cơ sở dữ liệu và hình ảnh. Các tính năng này đang trong giai đoạn thử nghiệm nhưng bạn vẫn nên đưa chúng vào.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22390%22%3E%3C/svg%3E


Tiếp theo, chọn tùy chọn nâng cấp cho nội dung bạn muốn giữ lại và nội dung bạn muốn nâng cấp.


data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22484%22%3E%3C/svg%3E


Nhấp vào Nút Lưu trên mỗi phần để lưu các tùy chọn. Khi bạn đã hài lòng, hãy nhấp vào nút Nâng cấp Prestashop ngay! trên cùng một trang để nâng cấp cửa hàng của bạn. Nếu vì lý do nào đó, quá trình nâng cấp không thành công, bạn sẽ có cơ hội quay lại.

Kết luận​

Đây là phần kết thúc hướng dẫn của chúng tôi, trong đó bạn đã học cách cài đặt Prestashop trên máy chủ Rocky Linux 9. Nếu bạn có bất kỳ câu hỏi nào, hãy đăng chúng trong phần bình luận bên dưới.
 
Back
Bên trên