Cách cài đặt PrestaShop với Let's Encrypt SSL trên Ubuntu 22.04

Tác giả sysadmin, T.M.Hai 06, 2023, 01:29:08 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Cách cài đặt PrestaShop với Let's Encrypt SSL trên Ubuntu 22.04


PrestaShop là một nền tảng thương mại điện tử mã nguồn mở cho phép bạn điều hành cửa hàng trực tuyến của riêng mình hoặc cửa hàng trên Internet. Nó rất nổi tiếng và điều hành hơn 300000 cửa hàng trực tuyến trên toàn thế giới. Nó được lập trình bằng PHP và sử dụng MySQL/MariaDB làm phần phụ trợ cơ sở dữ liệu. Với Prestashop, bạn có thể đưa ra ý tưởng và sản phẩm của mình và bán chúng trên internet. Nó cung cấp nhiều chủ đề, mô-đun và tiện ích mở rộng mà bạn có thể mở rộng chức năng của cửa hàng của mình.

Trong bài viết này chúng tôi sẽ hướng dẫn bạn cách cài đặt PrestaShop trên Ubuntu 22.04.

1. Yêu cầu

  • Một máy chủ chạy Ubuntu 22.04.
  • Mật khẩu root được thiết lập trên máy chủ.

2. Cài đặt Apache, MariaDB và PHP

Trước tiên hãy cài đặt máy chủ Apache và MariaDB bằng lệnh bên dưới:

Mã nguồn [Chọn]
apt install apache2 mariadb-server -y
Theo mặc định, Ubuntu 22.04 có phiên bản PHP 8.1, nhưng PrestaShop không hỗ trợ phiên bản PHP 8.1. Do đó, bạn cần cài đặt phiên bản PHP 7.4 với các tiện ích mở rộng khác trên máy chủ của mình.

Đầu tiên, cài đặt tất cả các phụ thuộc cần thiết bằng lệnh sau:

Mã nguồn [Chọn]
apt install software-properties-common ca-certificates lsb-release apt-transport-https
Tiếp theo, thêm kho lưu trữ PHP bằng lệnh sau:

Mã nguồn [Chọn]
add-apt-repository ppa:ondrej/php
Khi kho lưu trữ PHP được thêm vào, hãy chạy lệnh sau để cài đặt PHP 7.4 với tất cả các tiện ích mở rộng cần thiết:

Mã nguồn [Chọn]
apt install php7.4 libapache2-mod-php7.4 php7.4-zip php7.4-xml php7.4-gd php7.4-curl php7.4-intl php7.4-xmlrpc php7.4-mbstring php7.4-imagick php7.4-mysql unzip -y
Khi PHP và các phần phụ thuộc bắt buộc khác được cài đặt, hãy chỉnh sửa tệp cấu hình mặc định của PHP:

Mã nguồn [Chọn]
nano /etc/php/7.4/apache2/php.ini
Thay đổi các dòng sau:

Mã nguồn [Chọn]
memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
date.timezone = UTC

Lưu và đóng tệp và khởi động lại dịch vụ Apache để áp dụng các thay đổi:

Mã nguồn [Chọn]
systemctl restart apache2
3. Tạo cơ sở dữ liệu cho PrestaShop

Tiếp theo, bạn cần tạo cơ sở dữ liệu và người dùng cho PrestaShop. Đầu tiên, đăng nhập vào shell MariaDB bằng lệnh sau:

Mã nguồn [Chọn]
mysql
Khi bạn đã đăng nhập, hãy tạo cơ sở dữ liệu và người dùng bằng lệnh sau:

Mã nguồn [Chọn]
MariaDB [(none)]> CREATE DATABASE prestashop;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password';

Tiếp theo, xóa quyền và thoát shell MariaDB bằng lệnh sau:

Mã nguồn [Chọn]
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

4. Cài đặt PrestaShop

Đầu tiên, hãy truy cập trang PrestaShop Git Hub và tải xuống phiên bản mới nhất của PrestaShop bằng lệnh sau:

Mã nguồn [Chọn]
wget https://github.com/PrestaShop/PrestaShop/releases/download/1.7.8.7/prestashop_1.7.8.7.zip
Sau khi quá trình tải xuống hoàn tất, hãy giải nén tệp đã tải xuống vào thư mục PrestaShop:

Mã nguồn [Chọn]
unzip prestashop_1.7.8.7.zip -d /var/www/html/prestashop
Tiếp theo, thay đổi quyền sở hữu và quyền cho thư mục PrestaShop:

Mã nguồn [Chọn]
chown -R www-data:www-data /var/www/html/prestashop/

chmod -R 755 /var/www/html/prestashop

5. Tạo máy chủ ảo Apache cho PrestaShop.

Tiếp theo, bạn cần tạo tệp cấu hình cho máy chủ ảo Apache cho PrestaShop. Bạn có thể tạo nó bằng lệnh sau:

Mã nguồn [Chọn]
nano /etc/apache2/sites-available/prestashop.conf
Thêm các cấu hình sau:

Mã nguồn [Chọn]
<VirtualHost *:80>
   ServerAdmin [email protected]
   DocumentRoot /var/www/html/prestashop
   ServerName prestashop.example.com

   <Directory /var/www/html/prestashop>
        Options FollowSymlinks
        AllowOverride All
        Require all granted
   </Directory>
ErrorLog ${APACHE_LOG_DIR}/prestashop_error.log
CustomLog ${APACHE_LOG_DIR}/prestashop_access.log combined
</VirtualHost>

Lưu và đóng tập tin khi bạn hoàn tất. Sau đó kích hoạt PrestaShop và kích hoạt mô-đun tiêu đề Apache bằng lệnh sau:

Mã nguồn [Chọn]
a2ensite prestashop
a2enmod rewrite headers

Sau đó khởi động lại dịch vụ Apache để áp dụng các thay đổi:

Mã nguồn [Chọn]
systemctl restart apache2
Tiếp theo, kiểm tra trạng thái của dịch vụ Apache bằng lệnh sau:

Mã nguồn [Chọn]
systemctl status apache2
Bạn sẽ nhận được kết quả đầu ra sau:

Mã nguồn [Chọn]
? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-08-15 04:14:12 UTC; 5s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 35363 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 35367 (apache2)
      Tasks: 6 (limit: 2242)
     Memory: 21.5M
        CPU: 108ms
     CGroup: /system.slice/apache2.service
             ??35367 /usr/sbin/apache2 -k start
             ??35368 /usr/sbin/apache2 -k start
             ??35369 /usr/sbin/apache2 -k start
             ??35370 /usr/sbin/apache2 -k start
             ??35371 /usr/sbin/apache2 -k start
             ??35372 /usr/sbin/apache2 -k start

Aug 15 04:14:12 ubuntu2204 systemd[1]: Starting The Apache HTTP Server...

6. Thực hiện cài đặt web PrestaShop

Bây giờ PrestaShop đã được cài đặt và cấu hình bằng Apache. Bây giờ hãy mở trình duyệt web của bạn và truy cập cài đặt web PrestaShop bằng URL   Đăng nhập để xem liên kết. Bạn sẽ thấy màn hình lựa chọn ngôn ngữ:


Chọn ngôn ngữ của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy màn hình thỏa thuận cấp phép:


Chấp nhận thỏa thuận cấp phép và nhấp vào nút " Tiếp theo". Bạn sẽ thấy màn hình Thông tin trang web:


Nhập thông tin trang web, tên người dùng và mật khẩu của bạn và nhấp vào nút Tiếp theo. Bạn sẽ thấy màn hình cấu hình cơ sở dữ liệu:


Nhập thông tin cơ sở dữ liệu của bạn và nhấp vào nút Tiếp theo. Sau khi cài đặt hoàn tất, bạn sẽ thấy màn hình sau:


Bây giờ hãy xóa thư mục cài đặt của bạn bằng lệnh sau:

Mã nguồn [Chọn]
rm -rf /var/www/html/prestashop/install/
Tiếp theo, nhấp vào nút Quản lý cửa hàng của bạn. Bạn sẽ thấy màn hình đăng nhập cho phần phụ trợ PrestaShop:


Nhập địa chỉ email và mật khẩu của bạn và nhấp vào nút ĐĂNG NHẬP. Bạn sẽ thấy bảng điều khiển PrestaShop:


7. Bảo mật PrestaShop với Let's Encrypt.

Tiếp theo, bạn cần cài đặt gói client Certbot để cài đặt và quản lý Let's Encrypt SSL.

Đầu tiên, cài đặt Certbot bằng lệnh sau:

Mã nguồn [Chọn]
apt-get install certbot python3-certbot-nginx -y
Sau khi quá trình cài đặt hoàn tất, hãy chạy lệnh sau để cài đặt Let's Encrypt SSL trên trang web của bạn:

Mã nguồn [Chọn]
certbot --nginx -d prestashop.example.com
Bạn sẽ được nhắc cung cấp địa chỉ email hợp lệ và chấp nhận các điều khoản dịch vụ (xem bên dưới):

Mã nguồn [Chọn]
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for prestashop.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/prestashop.conf

Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không (xem bên dưới):

Mã nguồn [Chọn]
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Gõ 2 và nhấn Enter để hoàn tất cài đặt. Bạn sẽ thấy đầu ra sau:

Mã nguồn [Chọn]
Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/prestashop.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://prestashop.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=prestashop.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/prestashop.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/prestashop.example.com/privkey.pem
   Your cert will expire on 2022-11-16. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Chúc mừng! Bạn đã cài đặt thành công PrestaShop với Apache và Let's Encrypt SSL. Bây giờ bạn có thể lưu trữ cửa hàng trực tuyến của riêng mình trên Internet và bắt đầu bán sản phẩm của mình. Nếu bạn có bất kỳ câu hỏi nào, vui lòng liên hệ với tôi.