如何使用Apache安装PrestaShop并在CentOS 8上加密SSL

如何使用Apache安装PrestaShop并在CentOS 8上加密SSL

PrestaShop是一个用PHP编写的开源购物车,用于创建和管理在线业务。它提供了一个简单易用的界面,可帮助您在最短的时间内启动在线商店。它提供了一个用户友好的界面,多个支付网关(PayPal,Google Checkout),移动响应设计,免费支持,多语言,分析,报告等等。

在本文中,我将向您展示如何使用Apache安装PrestaShop以及如何在CentOS 8上安装免费的Let’s Encrypt SSL证书。

先决条件

  • 运行CentOS的服务器8。
  • 指向服务器IP的有效域名。
  • 服务器具有root密码。

安装LAMP服务器

开始之前,您需要在服务器上安装LAMP服务器。如果尚未安装,则可以使用以下命令将其与其他PHP扩展一起安装:

dnf install httpd mariadb-server php php-cli php-bcmath php-mysqli php-gd php-pdo php-xmlrpc php-intl php-posix php-json php-curl php-zip unzip -y

安装所有必需的软件包后,编辑php.ini文件并更改一些默认设置。

nano /etc/php.ini

更改以下行。

max_input_vars = 3000
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 600
memory_limit = 256M
date.timezone = Asia/Kolkata

保存并关闭文件,然后启动Apache和MariaDB服务,以便可以在系统重新启动时启动它们。

systemctl start httpdsystemctl start mariadbsystemctl enable httpdsystemctl enable mariadb

此时,LAMP服务器将安装在服务器上。

创建一个PrestaShop数据库

PrestaShop使用MySQL / MariaDB数据库存储您的数据。因此,您需要为PrestaShop创建数据库和suer。

首先,使用以下命令登录MariaDB:

mysql

登录后,使用以下命令创建数据库和用户。

MariaDB [(none)]> CREATE DATABASE prestashopdb;MariaDB [(none)]> CREATE USER 'prestashopuser'@'localhost' IDENTIFIED BY 'securepassword';

然后使用以下命令将所有特权授予prestashopdb:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON prestashopdb. * TO 'prestashopuser'@'localhost';

然后刷新特权并使用以下命令退出MariaDB:

MariaDB [(none)]> FLUSH PRIVILEGES;MariaDB [(none)]> EXIT;

完成后,您可以继续下一步。

安装PrestaShop

接下来,您需要从官方下载页面下载最新版本的PrestaShop。您可以使用以下命令下载它。

wget https://download.prestashop.com/download/releases/prestashop_1.7.7.3.zip

下载完成后,使用以下命令将下载的文件解压缩到Apache Web根目录中。

unzip prestashop_1.7.7.3.zip -d /var/www/html/prestashop

然后,使用以下命令设置prestashop目录的适当所有权。

chown -R apache:apache /var/www/html/prestashop

完成后,您可以继续下一步。

为PrestaShop配置Apache

接下来,您需要为PrestaShop创建一个Apache虚拟主机配置文件。您可以使用以下命令创建它。

nano /etc/httpd/conf.d/prestashop.conf

添加以下行。

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName prestashop.example.com
    DocumentRoot /var/www/html/prestashop

    <Directory /var/www/html/prestashop>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/prestashop-error_log
    CustomLog /var/log/httpd/prestashop-access_log common
</VirtualHost>

完成后,保存并关闭文件。然后重新启动Apache服务以应用更改。

systemctl restart httpd

然后使用以下命令检查Apache服务的状态:

systemctl status httpd

您应该获得以下输出:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2021-04-07 01:04:19 EDT; 2h 2min ago
     Docs: man:httpd.service(8)
 Main PID: 47841 (httpd)
   Status: "Total requests: 313; Idle/Busy workers 100/0;Requests/sec: 0.0425; Bytes served/sec: 1.2KB/sec"
    Tasks: 278 (limit: 12524)
   Memory: 35.9M
   CGroup: /system.slice/httpd.service
           ??47841 /usr/sbin/httpd -DFOREGROUND
           ??47843 /usr/sbin/httpd -DFOREGROUND
           ??47844 /usr/sbin/httpd -DFOREGROUND
           ??47845 /usr/sbin/httpd -DFOREGROUND
           ??47846 /usr/sbin/httpd -DFOREGROUND
           ??48061 /usr/sbin/httpd -DFOREGROUND

Apr 07 01:04:19 centos8 systemd[1]: Stopped The Apache HTTP Server.
Apr 07 01:04:19 centos8 systemd[1]: Starting The Apache HTTP Server...

完成后,您可以继续下一步。

配置防火墙

接下来,您需要允许端口80和443通过防火墙。您可以使用以下命令允许它们:

firewall-cmd --zone=public --permanent --add-service=httpfirewall-cmd --zone=public --permanent --add-service=https

然后重新加载防火墙以应用您的更改。

firewall-cmd --reload

完成后,您可以继续下一步。

前往PrestaShop

然后打开Web浏览器并使用URL访问PrestaShop Web界面。 http://prestashop.example.com..您将被重定向到下一页。

选择一种语言

选择一种语言, 下一个 按钮。显示下一页。

许可协议

接受许可协议,然后单击 下一个 按钮。显示下一页。

店铺详情

管理员帐号

输入商店名称,国家/地区信息,帐户信息, 下一个 按钮。显示下一页:广告

数据库配置

输入数据库名称,数据库用户名和密码,然后单击。 下一个 按钮。安装完成后,将显示下一页。

Prestashop安装成功完成

请点击 管理您的商店 按钮。显示下一页。

删除安装程序

然后使用以下命令删除安装文件夹:

rm -rf /var/www/html/prestashop/install

然后点击 PrestaShop管理网址..显示下一页。

Prestashop管理员登录

输入管理员用户名和密码,然后单击 登录 按钮。 PrestaShop仪表板显示在下一页上。

Prestashop仪表板

让我们加密SSL保护PrestaShop

接下来,您需要安装Certbot客户端并安装“让我们为PrestaShop加密SSL”。您可以使用以下命令进行安装。

dnf install letsencrypt python3-certbot-apache

然后,使用以下命令获取并安装let域的SSL证书。

certbot --apache -d prestashop.example.com

系统将要求您输入电子邮件地址并同意使用条款。

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
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. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, 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
Account registered.
Requesting a certificate for prestashop.example.com
Performing the following challenges:
http-01 challenge for prestashop.example.com
Waiting for verification.
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/httpd/conf.d/prestashop.conf
Redirecting all traffic on port 80 to ssl in /etc/httpd/conf.d/prestashop.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://prestashop.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: [email protected]).


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 certificate will expire on 2021-06-09. 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"
 - 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

您现在可以使用URL安全地访问您的网站。 https://prestashop.example.com。

结论

恭喜!您已经使用Apache和Let’s Encrypt SSL在CentOS 8上成功安装了PrestaShop。您现在可以将产品添加到PrestaShop并开始在线销售。如有任何疑问,请随时与我们联系。

Sidebar