如何在 Ubuntu 22.04 上安装 Prestashop
Prestashop 是一个用 PHP 编写的免费开源电子商务解决方案。它允许您自行托管和创建在线商店并发展您的在线业务。 Prestashop 是一个完全可定制且功能丰富的电子商务解决方案,用于构建综合电子商务网站。与此同时,全球有超过 250,000 家在线商店使用 Prestashop,并提供 65 种语言版本。
在本教程中,我们将解释如何在 Ubuntu 22.04 服务器上使用 LAMP Stack(Linux、Apache、MySQL/MariaDB 和 PHP)安装开源电子商务解决方案 - Prestashop。本教程还包括 PHP Web 应用程序的 LAMP Stack 的基本配置。
先决条件
以下是完成本教程所需的内容:
- Ubuntu 22.04 服务器 - 本教程使用主机名为“server-ubuntu”、IP 地址为“192.168.5.100”的 ubuntu 服务器。
- 具有 root 管理权限的非 root 用户。
- 指向 Ubuntu 服务器 IP 地址的域名。
安装 Apache Web 服务器
在以下步骤中,您将在 Ubuntu 系统上安装 Apache Web 服务器。 Prestashop 电子商务至少需要 Apache Web 服务器 v2.2。对于此安装,您将安装 Apache v2.4,默认情况下,Ubuntu 存储库上提供该版本。
我们始终建议在安装任何软件包之前更新和刷新您的存储库。因此,运行 apt 命令来更新 Ubuntu 存储库。
sudo apt update
使用以下 apt 命令安装 Apache Web 服务器。当提示确认安装时,输入Y接受并按ENTER。
sudo apt install apache2
安装 Apache Web 服务器后,您需要检查并验证“apache2”服务并确保其正在运行。您可以使用以下 systemctl 命令来检查和验证“apache2”服务。
您将收到有关“apache2”服务已启用的输出,这意味着它将在系统启动时自动运行。并且“apache2”服务的当前状态为正在运行。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
最后,您还需要将 HTTP 和 HTTPS 端口添加到 UFW 防火墙。使用以下 ufw 命令将自定义规则“Apache Full”添加到 UFW 防火墙。然后,验证已启用的 UFW 规则的列表。
您将收到一条输出,表明规则“Apache Full”已添加到 UFW 防火墙。
sudo ufw allow "Apache Full"
sudo ufw status
安装 MariaDB 数据库服务器
由于 Prestashop 仅支持 MySQL/MariaDB 数据库,因此您现在将在 Ubuntu 计算机上安装此数据库服务器。在此示例中,您将安装并使用 MariaDB 作为 Prestashop 安装的数据库。
使用以下 apt 命令安装 MariaDB 数据库服务器。当提示确认安装时输入Y,然后按ENTER。
sudo apt install mariadb-server
安装 MariaDB 服务器后,使用以下 systemctl 命令检查并验证“mariadb”服务。您应该收到“mariadb”服务已启用的输出,这意味着它将在系统启动时自动运行。并且“mariadb”服务的状态为“正在运行”。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
最后,您还需要确保 MariaDB 部署的安全。您可以通过 MariaDB 服务器包提供的命令行“mysql_secure_installation”来执行此操作。
运行以下“mysql_secure_installation”开始配置和保护您的 MariaDB 服务器部署。
sudo mysql_secure_installation
系统将提示您以下有关 MariaDB 服务器部署的问题:
- 切换到unix_socket身份验证?输入n并按ENTER。默认的 MariaDB root 用户已受到保护。或者,您也可以通过键入 y 表示“是”来启用它。
- 更改 root 密码?输入 y 确认并设置新的 MariaDB root 密码。
- 是否删除匿名用户?输入y进行确认。
- 禁止远程root登录?输入y进行确认。如果您使用 MariaDB root 用户,则仅允许本地连接。
- 删除测试数据库并访问它?输入y确认并删除默认数据库“test”。
- 最后,再次输入 y 以重新加载 MariaDB 服务器上的所有表权限并应用新的更改。
安装PHP
对于最新版本的 Prestashop 安装,建议至少使用 PHP v7.1。在本演示中,您将在 Prestashop 中使用 PHP 7.4,并且可以通过第三方存储库在最新的 Ubuntu 22.04 系统上安装 PHP 7.4。
在安装 PHP 之前,请运行以下 apt 命令来安装用于管理存储库的基本软件包 dpendency。
sudo apt install software-properties-common apt-transport-https -y
图片
现在,通过下面的“add-apt-repository”命令将 PHP 7.4 PPA 存储库添加到您的 Ubuntu 系统。此外,以下命令将自动更新和刷新您的 Ubuntu 存储库。
sudo add-apt-repository ppa:ondrej/php -y
接下来,使用以下 apt 命令为 Prestashop 安装带有一些扩展的 PHP 包。当提示确认安装时,输入Y表示同意,然后按ENTER。
sudo apt install php7.4 php7.4-curl php7.4-xmlrpc php7.4-soap php7.4-intl php7.4-zip php7.4-cli php7.4-mysql php7.4-common php7.4-opcache php7.4-memcached php7.4-bcmath php7.4-gd php7.4-mbstring php7.4-xml php7.4-gmp php7.4-imagick
安装 PHP 后,使用文本编辑器打开 PHP 配置文件“/etc/php/7.4/apache2/php.ini”。在此示例中,我们将使用 nano。
sudo nano /etc/php/7.4/apache2/php.ini
更改详细 PHP 配置如下。请务必根据您当前的服务器环境更改选项“date.timezone”和“memory_limit”选项。
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 命令来重新启动“apache2”服务。此外,这还将应用对 PHP 配置文件“php.ini”的任何更改。
sudo systemctl restart apache2
现在 Apache Web 服务器和 PHP 应该正在运行。您可以通过创建 phpinfo 文件并通过网络浏览器测试它来验证这一点。
运行以下命令创建一个新的 phpinfo 文件“/var/www/html/info.php”。现在应该可以通过 URL 路径“/info.php”访问该文件。
cat <<EOF | sudo tee /var/www/html/info.php
<?php
phpinfo();
?>
EOF
打开网络浏览器并通过服务器 IP 地址访问 phpinfo 文件,后跟文件“/info.php”的路径 (http://192.168.5.100/info.php)。您应该会看到一个页面,其中包含有关 PHP 安装的详细信息。
安装 Prestashop 系统检查器
在安装 Prestashop 之前,我们先在当前服务器上安装 Prestashop Checker。这是 PHP 脚本,用于检查 Prestashop 安装的服务器环境。
运行以下命令将 Prestashop Checker 脚本下载到目录“/var/www/html”。
cd /var/www/html/
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz
提取 Prestashop Checker 源并将目录重命名为“check-ps”。
tar -xzvf v1.1.tar.gz
mv php-ps-info-1.1 check-ps
返回 Web 浏览器并访问您的服务器 IP 地址,后跟 URL 路径“check-ps”(即:http://192.168.5.100/check-ps/phppsinfo.php)。
使用默认用户和密码“prestashop”登录。
现在确保您的所有 LAMP 堆栈配置都满足 Prestashop 要求。
如果缺少某些设置,您可以编辑 PHP 配置文件“/etc/php/8.1/apache2/php.ini”。此外,如果缺少扩展,您可以安装 PHP 扩展。
创建 MariaDB 数据库和用户
在开始安装 Prestashop 之前,您需要创建一个新的 MariaDB 数据库和用户。
运行以下“mysql”命令以 MariaDB“root”用户身份登录 MariaDB shell。当提示输入密码时,请输入密码,或者直接按 ENTER 键即可。
sudo mysql -u root -p
接下来,运行以下查询来为 Prestashop 创建新的数据库和用户。在此示例中,Prestashop 的数据库将为“prestashopdb”,MariaDB 用户为“prestashop”。您可以在此处使用强密码更改密码。
CREATE DATABASE prestashopdb;
GRANT ALL PRIVILEGES ON prestashopdb.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
现在运行以下查询来验证 MariaDB 用户“prestashop@localhost”的权限。然后,从 MariaDB shell 注销。您应该收到有关拥有数据库“prestashopdb”权限的“prestasho@localhost”用户的信息。
SHOW GRANTS FOR prestashop@localhost;
quit
下载 Prestashop 源代码
创建 MariaDB 数据库和用户后,您将下载 Prestashop 源代码并设置 prestashp 安装目录的正确权限和所有权。
现在运行下面的 apt 命令来安装“unzip”包。这将用于提取 Prestashop 源代码。
sudo apt install unzip -y
将工作目录移动到“/var/www/”并使用下面的 wget 命令下载 Prestashop 源代码。
cd /var/www/
wget https://download.prestashop.com/download/releases/prestashop_1.7.8.7.zip
通过下面的“unzip”命令将 Prestashop 源代码提取到新目录“/var/www/prestashop”。
unzip prestashop_1.7.8.7.zip -d /var/www/prestashop
现在更改 Prestashop 安装目录“/var/www/prestashop”的所有权并更改其权限。所有权应为用户“www-data”,权限为“u+rw”(所有者/用户可以写入目录)。
chown -R www-data:www-data /var/www/prestashop
chmod u+rw /var/www/prestashop
设置 Apache 虚拟主机
所有依赖项和配置都已准备就绪,并且 Prestashop 源代码已下载。现在您将为 Prestashop 安装设置 Apache 虚拟主机。
在开始之前,请确保您的域名指向您的 Ubuntu 服务器 IP 地址并生成了 SSL 证书。另外,您必须为 Prestashop 启用一些 Apache2 模块。
使用以下命令启用 Aapche2 模块。
sudo a2enmod ssl rewrite headers
使用以下命令为 Prestashop“prestashop.conf”创建新的虚拟主机配置。所有 Apache2 虚拟主机文件必须位于“/etc/apache2/sites-available/”目录中。
sudo nano /etc/apache2/sites-available/prestashop.conf
为 prestashop 添加以下虚拟主机配置。请务必更改域名和 SSL 证书的路径。
<VirtualHost *:80>
ServerName hwdomain.io
Redirect permanent / https://hwdomain.io/
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email
DocumentRoot /var/www/prestashop
ServerName hwdomain.io
Protocols h2 http/1.1
SSLEngine On
SSLCertificateFile /etc/letsencrypt/live/hwdomain.io/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/hwdomain.io/privkey.pem
<Directory /var/www/prestashop>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/apache2/prestashop_error.log
CustomLog /var/log/apache2/prestashop_access.log combined
</VirtualHost>
完成后保存配置文件并关闭该文件。
接下来,运行以下命令启用虚拟主机文件“prestashop.conf”。然后,验证您的配置。
当您的配置没有错误时,您应该会收到一条输出消息,例如“语法正常”。
sudo a2ensite prestashop.conf
sudo apachectl configtest
现在运行以下 systemctl 命令来重新启动“apache2”服务并应用新的更改。您可以通过网络浏览器启动 Prestashop 的安装向导。
sudo systemctl restart apache2
通过 Web 安装程序安装 Prestashop
返回您的网络浏览器并浏览 Prestashop 安装的域名(即:https://hwdomain.io/)。您应该看到 Web 安装程序正在启动 Prestashop 安装。
选择 PrestaShop 安装的默认语言,然后单击下一步。 PrestaShop 的默认安装语言是“英语”。
当显示 Prestashop 许可协议页面时,单击同意。
现在为您的 Prestashop 安装创建一个新的管理员用户。输入详细信息管理员用户、电子邮件和密码。然后,单击下一步继续进行数据库配置。
对于商店内容,您可以选择“否”,然后单击“下一步”。
用于 Prestashop 数据库配置。输入您创建的详细数据库用户、数据库名称和密码。然后,单击下一步,Prestashop 安装将开始。
下面您可以看到安装已处理。
Prestashop 安装完成后,您将看到通知您 Prestashop 安装的页面。此外,您还应该进行一项额外的更改,即删除 Prestashop 文档根目录中的“install”目录。
返回终端服务器并运行以下命令以使部分 Prestashop 目录可写并删除 Prestashop 'install' 目录。
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
rm -rf /var/www/prestashop/install
返回网络浏览器并单击“管理您的商店”按钮以访问 Prestashop 管理登录。您将被重定向到新的 Prestashop 登录页面,并确保复制 Prestashop 管理 URL 的路径。
输入 Prestashop 的管理员用户和密码,然后单击“登录”。
您将获得 Prestashop 的管理仪表板。
至此,您已经完成了 Ubuntu 22.04 上开源电子商务解决方案 Prestashop 的安装。
结论
在本教程中,您学习了如何在 Ubuntu 22.04 服务器上安装电子商务解决方案 Prestashop。您还学习了 Ubuntu 系统上 LAMP Stack(Apache、MariaDB 和 PHP)的基本安装和配置,以及如何保护 MariaDB 服务器和设置 Apache 虚拟主机。
最终,您将拥有在 Ubuntu 服务器上与 LAMP Stack 一起运行的 Prestashop 电子商务解决方案,并通过 SSL 证书进行保护。您现在可以添加主题进行自定义,并添加插件来扩展您的电子商务网站。然后,您可以添加您的产品。