如何在 AlmaLinux 9 上安装 PrestaShop
PrestaShop 是一个开源电子商务平台,可在 AlmaLinux 上高效运行,为构建和管理在线商店提供强大的解决方案。 PrestaShop 以其灵活性和广泛的功能而闻名,它允许用户轻松创建可定制的在线商店。该平台支持多种支付网关、运输方式和营销工具,增强了商家和客户的购物体验。在稳定且安全的企业级 Linux 发行版 AlmaLinux 上,PrestaShop 受益于可靠且高性能的环境。这种组合使其成为寻求建立专业且可扩展的在线业务的各种规模的企业的理想选择。
本指南将向您展示如何使用 LAMP 堆栈(Apache/Htppd、MySQL/MariaDB 和 PHP)在 AlmaLinux 9 服务器上安装 PrestaShop。您还将了解如何使用 Letsencrypt 的 SSL/TLS 证书保护 PrestaShop 的安全。
先决条件
在进一步操作之前,请确保您具备以下条件:
- AlmaLinux 9 服务器。
- 具有 root 权限的非 root 用户。
- 域名指向服务器IP地址。
- 状态许可的 SELinux。
安装 LAMP 堆栈
首先,您需要安装软件包依赖项才能运行 PrestaShop。在本指南中,您将使用 LAMP 堆栈(Apache2/Httpd、MySQL/MariaDB 和 PHP)运行 PrestaShop。目前,PrestaShop 至少需要 Apache 2.4、PHP 8.1 和 MySQL 5.6。
在此步骤中,您将安装 LAMP Stack 以及 PrestaShop 所需的其他 PHP 扩展。
在此之前,运行以下命令为AlmaLinux启用EPEL和Remi存储库。
sudo dnf install epel-release dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm
现在运行以下命令以通过 Remi 存储库启用 PHP 8.1。
sudo dnf module reset php
sudo dnf module enable php:remi-8.2
使用以下命令将 LAMP Stack 包安装到您的 AlmaLinux 9 服务器。
sudo dnf install httpd mariadb-server php php-curl php-soap php-intl php-zip php-cli php-mysqlnd php-common php-opcache php-memcached php-bcmath php-gd php-mbstring php-xml php-gmp php-imagick
输入 y 继续安装。
另外,输入 y 接受 Remi 存储库的 GPG 密钥。
安装完成后,启动并启用系统上的 Apache 和 MariaDB 服务。
执行以下命令启动并启用httpd服务。
sudo systemctl enable httpd
sudo systemctl start httpd
然后,验证 httpd 服务以确保其正在运行。
sudo systemctl status httpd
如下图所示,httpd服务正在运行。
接下来,使用以下命令启动并启用 MariaDB 服务。
sudo systemctl enable mariadb
sudo systemctl start mariadb
MariaDB 运行后,使用以下命令验证 mariadb 服务。
sudo systemctl status mariadb
您可以看到MariaDB服务在您的AlmaLinux服务器上运行。
最后,运行以下命令来验证 PHP 版本和启用的扩展列表。确保您已经安装了用于 PrestaShop 安装的 PHP 8.1。
php -v
php -m
设置 Firewalld
安装LAMP Stack后,您必须通过firewalld打开HTTP和HTTPS服务。这允许客户端访问您的 PrestaShop 安装。
使用以下命令在firewalld 上打开HTTP 和HTTPS 服务。
sudo firewall-cmd --add-service={http,https} --permanent
现在重新加载firewalld以使您的更改生效。
sudo firewall-cmd --reload
最后,验证firewalld中启用的服务和端口的列表。确保将 HTTP 和 HTTPS 服务添加到 firewalld。
sudo firewall-cmd --list-all
设置 PHP
在本部分中,您将通过编辑默认的 php.ini 文件来设置 PHP 安装。 PrestaShop 需要至少256 MB内存限制,并且还需要启用allow_url_fopen。所以你必须修改你的php.ini配置文件。
使用以下 Nano 编辑器打开 PHP 配置文件 /etc/php.ini。
sudo nano /etc/php.ini
使用以下内容更改默认 PHP 配置。请务必根据您当前的环境调整时区和内存限制。
date.timezone = Europe/Paris
max_execution_time = 130
memory_limit = 256M
allow_url_fopen = On
allow_url_include = Off
post_max_size = 128M
upload_max_filesize = 128M
max_input_vars = 5000
完成后保存文件并退出编辑器。
现在运行下面的 systemctl 命令来重新启动 httpd 服务并应用您的 PHP 配置。
sudo systemctl restart httpd
设置 MariaDB 服务器
现在 PHP 配置完毕,继续进行 MariaDB 服务器配置。您将保护 MariaDB 服务器安装的安全,然后为 PrestaShop 创建新的数据库和用户。
为了保护您的 MariaDB 服务器安装,请执行以下命令。
sudo mariadb-secure-installation
当该过程开始时,系统会要求您进行一些 MariaDB 配置 - 输入 Y 以应用建议的配置,或输入 N 以拒绝它:
- 切换到 unix_socket 身份验证?输入 n 并按 ENTER 键。默认的 MariaDB root 用户已受到保护。或者,您也可以通过键入 y(表示“是”)来启用它。
- 修改root密码?输入 y 确认并设置新的 MariaDB root 密码。
- 删除匿名用户?输入 y 确认。
- 禁止远程root登录?输入 y 确认。如果您使用 MariaDB root 用户,则仅允许本地连接。\
- 删除测试数据库并访问它?输入 y 确认并删除默认数据库“test”。
- 最后,再次输入 y 以重新加载 MariaDB 服务器上的所有表权限并应用新的更改。
配置 MariaDB 服务器后,您将为 PrestaShop 创建新的数据库和用户。
使用以下命令登录 MariaDB 服务器。出现提示时输入您的 MariaDB root 密码。
sudo mariadb -u root -p
登录后,执行以下查询以使用用户 prestashop 和密码 psp4ssw0rd 创建一个新数据库 prestashopdb。
CREATE DATABASE prestashopdb;
GRANT ALL PRIVILEGES ON prestashopdb.* TO 'prestashop'@'localhost' IDENTIFIED BY 'psp4ssw0rd';
FLUSH PRIVILEGES;
现在运行以下查询来验证用户 prestashop 的权限。确保用户 prestashop 具有访问数据库 prestashopdb 的权限。
SHOW GRANTS FOR prestashop@localhost;
最后,输入quit退出MariaDB服务器。
检查 PrestaShop 安装环境
现在您已经配置了 LAMP Stack,下一步是验证您的 PrestaShop 环境。
移至 /var/www/html 目录并使用下面的 wget 命令下载 PrestaShop 检查器。请务必获取最新版本的 PrestaShop 检查器。
cd /var/www/html/
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz
下载后,提取 PrestaShop 检查源代码并将提取的目录重命名为 check-ps。
tar -xzvf v1.1.tar.gz
mv php-ps-info-1.1 check-ps
最后,打开Web浏览器并访问您的服务器IP地址,然后访问PrestaShop检查器的路径,例如http://192.168.5.50/check-ps/phppsinfo.php。
输入默认用户名和密码“prestashop”。
从 PrestaShop 检查器页面,确保每个依赖项和系统配置都满足 PrestaShop 要求。
下载 PrestaShop
在本节中,您将把PrestaShop源代码下载到您的AlmaLinux服务器。您还将为 PrestaShop 源代码设置适当的权限和所有权。
移至 /var/www 目录并使用下面的 wget 命令下载最新版本的 PrestaShop。请务必检查 PrestaShop GitHub 页面以获取 PrestaShop 的最新稳定版本。
cd /var/www/
wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.3/prestashop_8.1.3.zip
下载后,使用下面的 unzip 命令将 PrestaShop 源代码解压缩到 /var/www/prestashop 目录。这将用作 PrestaShop 的文档根目录。
unzip prestashop_8.1.3.zip -d /var/www/prestashop
现在将 /var/www/prestashop 目录的所有权和权限更改为用户 apache。
sudo chown -R apache:apache /var/www/prestashop
sudo chmod u+rw /var/www/prestashop
设置 Httpd 虚拟主机
下载 PrestaShop 后,您需要创建一个新的 httpd 虚拟主机配置,用于运行 PrestaShop。因此,在配置虚拟主机之前,请确保您已准备好域名。
使用以下 nano 编辑器命令创建新的 httpd 虚拟主机配置 /etc/httpd/conf.d/prestashop.conf。
sudo nano /etc/httpd/conf.d/prestashop.conf
将以下配置添加到文件中,并确保将域名更改为您的域。
<VirtualHost *:80>
ServerName howtoforge.local
ServerAdmin admin@howtoforge.local
DocumentRoot /var/www/prestashop
<Directory /var/www/prestashop>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/prestashop_error.log
CustomLog /var/log/httpd/prestashop_access.log combined
</VirtualHost>
完成后保存并退出文件。
现在执行以下命令来验证您的 httpd 配置。如果您有正确的 httpd 语法,您将得到一个输出 Syntax OK。
sudo apachectl configtest
最后,运行以下命令重新启动 httpd 服务并实施新的虚拟主机配置。您的 PrestaShop 安装现在应该可以访问。
sudo systemctl restart httpd
设置 Certbot
在开始安装 PrestaShop 之前,请确保生成 SSL/TLS 证书,尤其是对于生产环境。您可以通过 Certbot 轻松完成此操作。
使用以下命令将certbot和Certbot Apache插件安装到您的AlmaLinux服务器。
sudo dnf install -y certbot python3-certbot-apache -y
安装完成后,使用以下命令为您的 PrestaShop 域名生成 SSL/TLS 证书。请务必在以下命令中更改详细域名和电子邮件地址。
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email alice@howtoforge.local -d howtoforge.local
这样,您的 SSL/TLS 证书将生成到 /etc/letsencrypt/live/domain.com 目录。此外,您的 PrestaShop 安装将通过 Certbot Apache 插件自动配置 HTTPS。
PrestaShop的安装
打开网络浏览器并访问您的 PrestaShop 域名,即 https://howtoforge.local/。如果安装成功,您将看到 PrestaShop 安装页面。
首先,选择默认语言为英语,然后单击下一步。
现在选择同意以接受 PrestaShop 许可协议,然后单击下一步。
输入您的商店名称、管理员用户、密码和电子邮件地址,这些地址将用作 PrestaShop 安装的管理员。然后,单击下一步继续。
对于商店配置,您可以安装演示数据并单击下一步。
接下来,输入 MariaDB 数据库名称、用户和密码的详细信息。然后再次点击“下一步”。
安装完成后,您将得到如下配置 - 您还可以看到删除 PrestaShop 安装目录的附加说明:
PrestaShop 主页。
返回终端并执行以下命令删除 PrestaShop 安装目录。
rm -rf /var/www/prestashop/install
最后,执行以下命令以允许读取和写入 PrestaShop 目录。
chmod u+rw /var/www/prestashop/var/cache
chmod u+rw /var/www/prestashop/var/logs
chmod u+rw /var/www/prestashop/img
chmod u+rw /var/www/prestashop/mails
chmod u+rw /var/www/prestashop/modules
chmod u+rw /var/www/prestashop/translations
chmod u+rw /var/www/prestashop/upload
chmod u+rw /var/www/prestashop/download
chmod u+rw /var/www/prestashop/app/config
chmod u+rw /var/www/prestashop/app/Resources/translations
结论
恭喜!您已在 AlmaLinux 9 服务器上完成 PrestaShop 的安装。您已安装带有 LAMP Stack(Apache/Httpd、MySQL/MariaDB 和 PHP)的 PrestaShop,并使用 Letsencrypt 的 SSL/TLS 证书保护 PrestaShop。现在,您可以上传主题并添加要销售的产品。