本教程适用于以下操作系统版本

  • 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

在 Debian 12 上安装 PrestaShop 电商系统

仓库更新完成后,使用以下命令安装 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 继续安装。

在 Debian 12 上安装 PrestaShop 电商系统

依赖项安装完成后,使用以下命令验证每个依赖项。

通过执行以下 systemctl 命令验证 apache2 服务,以确保该服务正在运行。

sudo systemctl is-enabled apache2
sudo systemctl status apache2

将显示以下结果,确认 apache2 服务正在运行且已启用。

在 Debian 12 上安装 PrestaShop 电商系统

现在使用以下命令验证 mariadb 服务。

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

下面显示的输出确认 mariadb 服务正在运行且已启用。

在 Debian 12 上安装 PrestaShop 电商系统

最后,运行以下命令验证你的 PHP 版本并列出已启用的扩展。

php -v
php -m

你应该看到你的 Debian 机器上已安装 PHP 8.1,并且列出了已启用的扩展。

在 Debian 12 上安装 PrestaShop 电商系统

配置 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;

在 Debian 12 上安装 PrestaShop 电商系统

接下来,运行以下查询来验证 MariaDB 用户 prestashop 。

SHOW GRANTS FOR 'prestashop'@'localhost';

下面显示的输出表明,MariaDB 用户 prestashop 被允许访问数据库 prestashopdb 。

在 Debian 12 上安装 PrestaShop 电商系统

最后,输入 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。

在 Debian 12 上安装 PrestaShop 电商系统

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

在 Debian 12 上安装 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

在 Debian 12 上安装 PrestaShop 电商系统

然后,使用 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。

在 Debian 12 上安装 PrestaShop 电商系统

现在运行以下 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"。

在 Debian 12 上安装 PrestaShop 电商系统

接下来,运行以下命令为部分 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 安装的默认首页。

在 Debian 12 上安装 PrestaShop 电商系统

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

输入你的管理员用户名和密码,然后点击 Login。

在 Debian 12 上安装 PrestaShop 电商系统

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

在 Debian 12 上安装 PrestaShop 电商系统

另一个建议,你可以运行以下命令来检查 PrestaShop 登录管理员。

ls /var/www/prestashop

下面的输出显示,PrestaShop 管理页面位于 admin051rgjztgtkvgcie6dp 。

在 Debian 12 上安装 PrestaShop 电商系统

结语

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