本教程适用于以下操作系统版本
- Debian 12 (Bookworm)
- Debian 11 (Bullseye)
- Debian 9 (Stretch)
本页内容
- 先决条件
- 安装依赖项
- 配置 MariaDB 服务器
- 配置 PHP
- 下载 PrestaShop
- 配置 Apache2 虚拟主机
- 通过命令行安装 PrestaShop
- 结语
PrestaShop 是一个用 PHP 编写的免费开源电商解决方案。它允许你自行托管并创建在线商店,发展你的在线业务。PrestaShop 是一个完全可定制且功能丰富的电商解决方案,让你可以创建功能完备的电商网站。PrestaShop 目前被全球超过 250,000 家在线商店使用,并提供 65 种语言版本。
在本教程中,我将逐步指导你在 Debian 12 服务器上安装 PrestaShop。你将使用 LAMP 技术栈(Apache2、MariaDB 和 PHP)安装 PrestaShop,然后通过 Letsencrypt 使用 SL/TLS 证书保护你的 PrestaShop 安装。
先决条件
在开始之前,请准备好以下内容:
- 一台 Debian 12 服务器。
- 一个具有管理员权限的非 root 用户。
- 一个指向服务器 IP 地址的域名。
安装依赖项
PrestaShop 是一个用 PHP 编写、以 MariaDB/MySQL 作为数据库的开源在线商店创建平台。在接下来的步骤中,你将安装 PrestaShop 的依赖项,包括 LAMP 技术栈(Apache2、MariaDB 和 PHP)软件包以及一些额外的 PHP 扩展。你将通过第三方仓库专门安装 PHP 8.1,因为当前版本的 PrestaShop 尚不支持 PHP 8.2。
首先,运行以下命令将第三方 PHP 仓库和 GPG 密钥添加到你的 Debian 系统。
sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
通过执行以下 apt 命令更新并刷新你的 Debian 软件包索引。
sudo apt update

仓库更新完成后,使用以下命令安装 PrestaShop 的依赖项。这将安装 LAMP 技术栈(Apache2、MariaDB、PHP 8.1)软件包、Certbot、Certbot Apache 插件,以及 PrestaShop 所需的额外 PHP 扩展。
sudo apt install apache2 mariadb-server certbot python3-certbot-apache php8.1 php8.1-curl php8.1-xmlrpc php8.1-soap php8.1-intl php8.1-zip php8.1-cli php8.1-mysql php8.1-common php8.1-opcache php8.1-memcached php8.1-bcmath php8.1-gd php8.1-mbstring php8.1-xml php8.1-gmp php8.1-imagick unzip
输入 y 继续安装。

依赖项安装完成后,使用以下命令验证每个依赖项。
通过执行以下 systemctl 命令验证 apache2 服务,以确保该服务正在运行。
sudo systemctl is-enabled apache2
sudo systemctl status apache2
将显示以下结果,确认 apache2 服务正在运行且已启用。

现在使用以下命令验证 mariadb 服务。
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
下面显示的输出确认 mariadb 服务正在运行且已启用。

最后,运行以下命令验证你的 PHP 版本并列出已启用的扩展。
php -v
php -m
你应该看到你的 Debian 机器上已安装 PHP 8.1,并且列出了已启用的扩展。

配置 MariaDB 服务器
既然你已经安装了 PrestaShop 的依赖项,下一步是通过 mariadb-secure-installation 工具保护你的 MariaDB 服务器安装。然后,你需要为 PrestaShop 创建一个新的数据库和用户。
执行以下 mariadb-secure-installation 命令来保护你的 MariaDB 服务器安装。
sudo mariadb-secure-installation
输入 Y 确认并应用新配置,或输入 n 表示否并拒绝它。以下是你将被询问的 MariaDB 服务器配置:
- 切换到 unix_socket 认证?输入 n 并按 ENTER。默认的 MariaDB root 用户已经受到保护。或者,你也可以输入 y 选择是来启用它。
- 更改 root 密码?输入 y 确认并设置你的新 MariaDB root 密码。
- 删除匿名用户?输入 y 确认。
- 禁止 root 远程登录?输入 y 确认。如果你使用 MariaDB root 用户,将只允许本地连接。
- 删除测试数据库及其访问权限?输入 y 确认并删除默认数据库 'test'。
- 最后,再次输入 y 以重新加载 MariaDB 服务器上的所有表权限并应用新的更改。
接下来,运行以下 mariadb 客户端命令登录到 MariaDB 服务器。当系统提示时,输入你的 MariaDB root 密码。
sudo mariadb -u root -p
登录后,执行以下查询以创建一个新数据库 prestashopdb 、一个用户 prestashop ,密码为 password 。这里新建的 MariaDB 数据库和用户将作为 PrestaShop 安装所使用的用户。
CREATE DATABASE prestashopdb;
GRANT ALL PRIVILEGES ON prestashopdb.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

接下来,运行以下查询来验证 MariaDB 用户 prestashop 。
SHOW GRANTS FOR 'prestashop'@'localhost';
下面显示的输出表明,MariaDB 用户 prestashop 被允许访问数据库 prestashopdb 。

最后,输入 quit 退出 MariaDB 服务器。
配置 PHP
配置完 MariaDB 服务器后,你将通过修改 php.ini 文件来配置你的 PHP 安装。然后,你还将验证你的环境,以确保与 PHP 配置相关的一切都满足 PrestaShop 的要求。
使用以下 nano 编辑器命令打开默认的 PHP 配置文件 /etc/php/8.1/apache2/php.ini 。
sudo nano /etc/php/8.1/apache2/php.ini
更改以下配置,并确保根据你的服务器环境调整 date.timezone 和 memory_limit 参数。
date.timezone = Europe/Amsterdam 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 服务以应用更改。
sudo systemctl restart apache2
既然你已经配置了 PHP,你将验证你的服务器环境是否已准备好进行 PrestaShop 安装。这可以通过使用 PrestaShop 提供的环境检查器来完成。
进入 /var/www/html 目录,并通过以下 wget 命令下载环境检查脚本。你将在当前工作目录中看到文件 v1.1.tar.gz 。
cd /var/www/html
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz
解压文件 v1.1.tar.gz 并将解压出来的目录重命名为 check-ps 。
tar -xf v1.1.tar.gz
mv php-ps-info-1.1 check-ps
最后,打开你的网页浏览器,访问服务器 IP 地址后加上路径 check-ps 来访问 PrestaShop 环境检查器脚本,例如 http://192.168.10.15/check-ps/phppsinfo.php 。
输入默认用户名 prestashop 和密码 prestashop,然后点击 Sign in。

确保你的依赖项、PHP 配置和 PHP 扩展都满足 PrestaShop 的要求。如果不满足,你可以根据页面上的建议调整你的设置。

下载 PrestaShop
既然 MariaDB 服务器和 PHP 已经配置完成,下一步是下载 PrestaShop 源代码,并以适当的权限和所有权配置安装目录。
将你的工作目录切换到 /var/www/ ,并通过以下 wget 命令下载 PrestaShop 源代码。请务必查看 PrestaShop 发布页面以获取最新版本的 PrestaShop。
cd /var/www/
wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.2/prestashop_8.1.2.zip
现在通过以下 unzip 命令解压 PrestaShop 源代码。你应该能在 zip 文件 prestashop.zip 中看到 PrestaShop 源代码。
unzip prestashop_8.1.2.zip
使用以下 unzip 命令将文件 prestashop.zip 解压到目标目录 /var/www/prestashop 。PrestaShop 源代码将被解压到 prestashop 目录,因此你的 PrestaShop 安装目录应为 /var/www/prestashop 。
unzip prestashop.zip -d /var/www/prestashop
最后,运行以下命令为 PrestaShop 安装目录 /var/www/prestashop 设置正确的所有权和权限。所有权应使用 www-data,权限为 u+rw ,这意味着所有者可以读取和写入目标目录。
sudo chown -R www-data:www-data /var/www/prestashop
sudo chmod u+rw /var/www/prestashop
配置 Apache2 虚拟主机
在接下来的步骤中,你将创建一个新的 Apache2 虚拟主机配置,用于运行 PrestaShop。因此在此之前,请确保你的域名已指向服务器 IP 地址。
首先,运行以下命令为 Apache 启用 rewrite 模块。
sudo a2enmod rewrite

然后,使用 nano 编辑器命令创建新的虚拟主机配置文件 /etc/apache2/sites-available/prestashop.conf 。
sudo nano /etc/apache2/sites-available/prestashop.conf
插入以下配置,并确保更改 ServerName 参数中的域名。
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/prestashop ServerName howtoforge.local <Directory /var/www/prestashop> # enable the .htaccess rewrites AllowOverride All Options +Indexes Require all granted # Disable back office token # SetEnv _TOKEN_ disabled </Directory> ErrorLog /var/log/apache2/prestashop.error.log CustomLog /var/log/apache2/prestashop.access.log combined </VirtualHost>
完成后保存并关闭文件。
接下来,运行以下命令激活虚拟主机文件 prestashop.conf 并验证你的 Apache 配置。
sudo a2ensite prestashop.conf
sudo apachectl configtest
如果你的 Apache 配置正确,将显示输出 Syntax OK。

现在运行以下 systemctl 命令重启 apache2 服务以应用更改。
sudo systemctl restart apache2
最后,通过执行以下 certbot 命令为你的 PrestaShop 域名生成 SSL/TLS 证书。请务必将电子邮件地址和域名替换为你的信息。
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email
[email protected]
-d howtoforge.local
过程完成后,你的虚拟主机文件 prestashop.conf 将自动配置为使用 HTTPS,并且你的 SSL/TLS 证书将位于 /etc/letsencrypt/live/howtoforge.local 目录。
通过命令行安装 PrestaShop
此时,你可以通过 Web 界面或命令行完成 PrestaShop 的安装。在本示例中,你将通过命令行完成 PrestaShop 的安装。
进入 PrestaShop 安装目录 /var/www/prestashop/install 。
cd /var/www/prestashop/install
像下面这样运行 index_cli.php 脚本,以通过命令行启动 PrestaShop 安装。请务必更改域名、MariaDB 数据库主机、名称、用户名和密码等详细信息。同时,请务必更改将用作 PrestaShop 管理员的电子邮件地址和密码。
sudo -u www-data php index_cli.php --domain=howtoforge.local --db_server=127.0.0.1 --db_name=prestashopdb --db_user=prestashop --db_password=password --prefix=myps_
[email protected]
--password=Passw0rd
安装完成后,将显示如下输出 " Installation successful"。

接下来,运行以下命令为部分 PrestaShop 目录设置正确的权限。这将允许 www-data 作为所有者对这些目标目录进行读取和写入。
sudo chmod u+rw /var/www/prestashop/var/cache
sudo chmod u+rw /var/www/prestashop/var/logs
sudo chmod u+rw /var/www/prestashop/img
sudo chmod u+rw /var/www/prestashop/mails
sudo chmod u+rw /var/www/prestashop/modules
sudo chmod u+rw /var/www/prestashop/translations
sudo chmod u+rw /var/www/prestashop/upload
sudo chmod u+rw /var/www/prestashop/download
sudo chmod u+rw /var/www/prestashop/app/config
sudo chmod u+rw /var/www/prestashop/app/Resources/translations
现在运行以下命令删除 /var/www/prestashop/install 目录,以保护你的 PrestaShop 安装。
sudo rm -rf /var/www/prestashop/install
然后,打开你的网页浏览器并访问你的 PrestaShop 域名,例如 http://howtoforge.local/ 。一旦安装成功,你应该会被重定向到安全的 HTTPS 连接,并且你应该能看到 PrestaShop 安装的默认首页。

接下来,访问 PrestaShop 域名后加上 admin 路径,例如 https://howtoforge.local/admin/ 。如果一切顺利,你应该会被重定向到 PrestaShop 登录页面。此外,你可以看到 PrestaShop 的默认 URL 路径已更改为 admin051rgjztgtkvgcie6dp 。
输入你的管理员用户名和密码,然后点击 Login。

如果你拥有正确的管理员用户名和密码,你应该会看到 PrestaShop 管理后台仪表盘。

另一个建议,你可以运行以下命令来检查 PrestaShop 登录管理员。
ls /var/www/prestashop
下面的输出显示,PrestaShop 管理页面位于 admin051rgjztgtkvgcie6dp 。

结语
总之,你现在已逐步成功在 Debian 12 上安装了 PrestaShop。你已使用 LAMP 技术栈(Apache2、MariaDB 和 PHP)安装了 PrestaShop 8,并通过 SSL/TLS 证书保护了 PrestaShop 安装。此外,你还学习了如何通过命令行启动 PrestaShop 安装。现在你可以添加新的主题和额外的扩展来扩展你的 PrestaShop 安装。