本页内容
- 准备工作
- 安装 Apache Web 服务器
- 安装 MariaDB 数据库服务器
- 安装 PHP
- 安装 Prestashop 系统检查器
- 创建 MariaDB 数据库和用户
- 下载 Prestashop 源代码
- 配置 Apache 虚拟主机
- 通过 Web 安装程序安装 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' 服务已 enabled(启用)的输出,这意味着它将在系统启动时自动运行。并且 'apache2' 服务的当前状态为 running(运行中)。
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' 服务已 enabled(启用)的输出,这意味着它将在系统启动时自动运行。并且 'mariadb' 服务的状态为 'running'(运行中)。
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。在本演示中,你将使用 PHP 7.4 运行 Prestashop,并且你可以通过第三方仓库在最新的 Ubuntu 22.04 系统上安装 PHP 7.4。
在安装 PHP 之前,运行以下 apt 命令安装用于管理软件仓库的基础软件包依赖。
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 命令安装带有部分扩展的 PHP 软件包以支持 Prestashop。当提示确认安装时,输入 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 文件并通过 Web 浏览器测试来验证。
运行以下命令创建一个新的 phpinfo 文件 '/var/www/html/info.php'。现在该文件应可通过 URL 路径 '/info.php' 访问。
cat <<EOF | sudo tee /var/www/html/info.php
<?php
phpinfo();
?>
EOF
打开 Web 浏览器,通过你的服务器 IP 地址加上文件路径 '/info.php'(http://192.168.5.100/info.php)来访问 phpinfo 文件。你应该会看到一个包含你的 PHP 安装详细信息的页面。

安装 Prestashop 系统检查器
在安装 Prestashop 之前,我们先在当前服务器上安装 Prestashop Checker。这是一个用于检查你的服务器环境是否满足 Prestashop 安装要求的 PHP 脚本。
运行以下命令将 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 Stack 配置全部满足 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。你应该收到关于 'prestashop@localhost' 用户对数据库 'prestashopdb' 拥有权限的信息。
SHOW GRANTS FOR prestashop@localhost;
quit

下载 Prestashop 源代码
创建 MariaDB 数据库和用户之后,你将下载 Prestashop 源代码,并设置 prestashop 安装目录的正确权限和所有权。
现在运行以下 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 证书。此外,你必须启用部分 Apache2 模块以支持你的 Prestashop。
使用以下命令启用 Apache2 模块。
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 howtoforge.local Redirect permanent / https://howtoforge.local/ </VirtualHost> <VirtualHost *:443> ServerAdmin [email protected] DocumentRoot /var/www/prestashop ServerName howtoforge.local Protocols h2 http/1.1 SSLEngine On SSLCertificateFile /etc/letsencrypt/live/howtoforge.local/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/howtoforge.local/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'。然后,验证你的配置。
当你的配置没有错误时,你应该会收到类似 "Syntax OK" 的输出消息。
sudo a2ensite prestashop.conf
sudo apachectl configtest
现在运行以下 systemctl 命令重启 'apache2' 服务并应用新的更改。然后你可以通过 Web 浏览器启动 Prestashop 的安装向导。
sudo systemctl restart apache2

通过 Web 安装程序安装 Prestashop
回到你的 Web 浏览器并访问你 Prestashop 安装的域名(即:https://howtoforge.local/)。你应该会看到 Web 安装程序正在启动 Prestashop 安装。

选择你 PrestaShop 安装的默认语言并点击 Next(下一步)。PrestaShop 的默认安装语言为 'English'(英语)。

当显示 Prestashop 许可协议页面时,点击同意(agree)。

现在为你的 Prestashop 安装创建一个新的管理员用户。输入管理员用户名、邮箱和密码等详细信息。然后,点击 Next 继续数据库配置。

对于商店内容,你可以选择 'No'(否)并点击 'Next'。

对于 Prestashop 数据库配置。输入你之前创建的数据库用户、数据库名称和密码等详细信息。然后,点击 Next,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
回到 Web 浏览器,点击 'Manage your store'(管理你的商店)按钮以访问 Prestashop 管理登录页面。你将被重定向到新的 Prestashop 登录页面,请务必复制你的 Prestashop 管理 URL 路径。
输入你 Prestashop 的管理员用户名和密码,然后点击 'LOG IN'(登录)。

你将进入 Prestashop 的管理仪表板。

至此,你已完成在 Ubuntu 22.04 上开源电商解决方案 Prestashop 的安装。
结论
通过本教程,你已学习如何在 Ubuntu 22.04 服务器上安装电商解决方案 Prestashop。你还学习了在 Ubuntu 系统上 LAMP Stack(Apache、MariaDB 和 PHP)的基础安装与配置,并了解了如何保护 MariaDB 服务器安全以及配置 Apache 虚拟主机。
最终,你已在 Ubuntu 服务器上运行了基于 LAMP Stack 并通过 SSL 证书保护的 Prestashop 电商解决方案。现在你可以添加主题进行个性化定制,并添加插件来扩展你的电商网站。然后,你就可以添加你的商品了。