本页内容
- 准备工作
- 安装依赖项
- 配置 PHP
- 配置 MariaDB 服务器
- 检查服务器环境
- 下载 Prestashop
- 配置 Apache 虚拟主机
- 使用 HTTPS 保护 Prestashop
- 安装 Prestashop
- 总结
Prestashop 是一个用 PHP 编写的开源免费电子商务解决方案。它允许你创建在线商店、自行托管并发展你的在线业务。
Prestashop 是一个完全可定制、功能丰富的电子商务解决方案,可用于构建综合性的电商网站。目前,全球已有超过 25 万家在线商店在使用 Prestashop,并支持 65 种语言。
在本教程中,你将学习如何在 Ubuntu 24.04 服务器上,借助 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)以及 Composer 来安装 Prestashop。
准备工作
在开始本教程之前,请确保你已具备以下条件:
- 一台 Ubuntu 24.04 服务器。
- 一个具有管理员权限的非 root 用户。
- 一个已解析到服务器 IP 地址的域名。
安装依赖项
要安装 Prestashop,你必须在系统上安装相关依赖。在本示例中,你将安装 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)、Composer 以及 Git 软件包。
首先,运行以下命令更新 Ubuntu 的软件包索引。
sudo apt update
现在运行以下命令,安装 LAMP 技术栈(Linux、Apache、MySQL/MariaDB 和 PHP)、Composer 和 Git,作为 Prestashop 的依赖项。输入 Y 以继续安装。
sudo apt install apache2 mariadb-server composer git php php-curl php-xmlrpc php-soap php-intl php-zip php-cli php-mysql php-common php-opcache php-memcached php-bcmath php-gd php-mbstring php-xml php-gmp php-imagick

安装完成后,使用以下命令检查 Apache Web 服务器状态:
sudo systemctl is-enabled apache2
sudo systemctl status apache2
可以看到下方显示 Apache Web 服务器正在运行并已启用。

使用以下命令检查 MariaDB 服务器状态:
sudo systemctl is-enabled mariadb
sudo systemctl status mariadb
你将看到类似的输出,表明 MariaDB 服务器正在运行且已启用。

现在通过以下命令检查 PHP 版本并列出已启用的扩展:
php -v
php -m
在下方输出中,可以看到已安装 PHP 8.3,并且 fileinfo、gd 和 opcache 等扩展也已启用。

最后,使用以下命令检查 Composer 和 Git 版本——你将看到已安装 Composer 2.7.1。
sudo -u www-data composer --version

配置 PHP
依赖安装完成后,你需要通过编辑 php.ini 文件并调整部分默认选项来配置 PHP,以满足 Prestashop 的要求。
使用以下 nano 编辑器命令打开默认的 PHP 配置文件 /etc/php/8.3/apache2/php.ini。
sudo nano /etc/php/8.3/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
修改完成后保存并退出文件。
现在运行以下命令重启 Apache Web 服务器,使新的 PHP 配置生效。
sudo systemctl restart apache2
配置 MariaDB 服务器
在本节中,你将加固 MariaDB 服务器,并为 Prestashop 创建新的数据库和用户。你将使用 mariadb-secure-installation 命令加固 MariaDB,然后通过 mariadb 客户端创建新的数据库和用户。
要加固 MariaDB 服务器,请运行以下 mariadb-secure-installation 命令:
sudo mariadb-secure-installation
命令执行后,系统会就以下配置向你提问:
- 切换到 unix_socket 认证?输入 n 并回车。默认的 MariaDB root 用户已经受到保护。你也可以输入 y 来启用它。
- 修改 root 密码。输入 y 确认,并设置新的 MariaDB root 密码。
- 删除匿名用户?输入 y 确认。
- 禁止 root 远程登录?输入 y 确认。如果使用 MariaDB root 用户,则仅允许本地连接。
- 删除测试数据库并禁止访问。输入 y 确认,移除默认的 'test' 数据库。
- 最后,再次输入 y 以重新加载 MariaDB 服务器上的所有表权限并应用更改。
加固并配置好 MariaDB 服务器后,你将使用 mariadb 客户端为 Prestashop 创建新的数据库和用户。
使用以下 mariadb 命令以 root 身份登录 MariaDB 服务器。在提示时输入你的 root 密码。
sudo mariadb -u root -p
现在运行以下查询,创建一个名为 prestashopdb 的新数据库,以及一个名为 prestashop、密码为 p4ssword 的新用户。请务必将相关信息替换为你自己的设置。
CREATE DATABASE prestashopdb;
CREATE USER prestashop@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES on prestashopdb.* TO prestashop@localhost;
FLUSH PRIVILEGES;

接下来,运行以下查询,确认用户 prestashop 可以访问数据库 prestashopdb。
SHOW GRANTS FOR prestashop@localhost;
在下方输出中,可以看到用户 prestashop 能够访问数据库 prestashopdb。

最后,输入 quit 退出 MariaDB 服务器。
检查服务器环境
配置好 PHP 和 MariaDB 后,你需要确认服务器已为 Prestashop 安装做好准备。你将使用 Prestashop 检查工具来验证服务器是否就绪。
进入 /var/www/html 目录,并使用以下 wget 命令下载 Prestashop 检查工具。
cd /var/www/html
wget https://github.com/PrestaShop/php-ps-info/archive/refs/tags/v1.1.tar.gz
运行以下命令解压 Prestashop 检查工具的源代码,并将解压后的目录重命名为 ps-check。
tar -xf v1.1.tar.gz
mv php-ps-info-1.1 ps-check
现在使用浏览器访问 http://server-ip/ps-check/phppsinfo.php。使用默认用户名和密码 prestashop 登录,并确认服务器已为 Prestashop 安装做好准备。

下载 Prestashop
服务器就绪后,你可以使用 Composer 安装 Prestashop,或通过 wget 手动下载。在本示例中,你将手动下载 Prestashop。
使用以下命令创建一个新的 /var/www/prestashop 目录:
mkdir -p /var/www/prestashop
进入 /var/www/prestashop 目录,并使用以下 wget 命令下载 Prestashop 源代码。请访问 Prestashop 的 GitHub 页面获取最新版本。
cd /var/www/prestashop wget https://github.com/PrestaShop/PrestaShop/releases/download/8.1.6/prestashop_8.1.6.zip
使用以下 unzip 命令解压 Prestashop 源代码。
unzip prestashop_8.1.6.zip
现在运行以下命令修改 Prestashop 安装目录 /var/www/prestashop 的权限和所属关系。
sudo chown -R www-data:www-data /var/www/prestashop
sudo chmod u+rw /var/www/prestashop
配置 Apache 虚拟主机
在本节中,你将为 Prestashop 创建一个新的虚拟主机配置文件。因此,请确保你的域名已解析到 Prestashop 服务器的 IP 地址。
运行以下命令启用 Apache 的 rewrite、headers 和 ssl 模块。
sudo a2enmod rewrite headers ssl
使用 nano 编辑器创建新的虚拟主机配置文件 /etc/apache2/sites-available/prestashop.conf。
sudo nano /etc/apache2/sites-available/prestashop.conf
添加以下配置。请务必将 ServerName 选项替换为你自己的域名。
<VirtualHost *:80>
ServerName howtoforge.local
ServerAdmin
[email protected]
DocumentRoot /var/www/prestashop
<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 配置语法。如果语法正确,你将看到 Syntax is OK 的输出。
sudo a2ensite prestashop.conf
sudo apachectl configtest
最后,运行以下命令重启 Apache Web 服务器以应用更改。
sudo systemctl restart apache2

使用 HTTPS 保护 Prestashop
在本教程中,你将通过 Certbot 和 Let's Encrypt 使用 HTTPS 保护 Prestashop。你需要安装 Certbot 来从 Let's Encrypt 生成 SSL/TLS 证书,同时还需要提供一个电子邮箱地址。
使用以下命令安装 certbot 和 python3-certbot-apache 软件包。输入 Y 确认安装。
sudo apt install certbot python3-certbot-apache
现在运行以下 certbot 命令生成 SSL 证书,并使用 HTTPS 保护 Prestashop。请务必修改邮箱地址和域名。
sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-ocsp --email
[email protected]
-d howtoforge.local
流程完成后,你的 Prestashop 将通过 HTTPS 受到保护,SSL 证书将保存在 /etc/letsencrypt/live/域名 目录下。
安装 Prestashop
使用 Web 浏览器访问你的 Prestashop 域名,例如 http://howtoforge.local。你将看到 Prestashop 安装向导。
选择你的语言(例如 English),然后点击 Next(下一步)。

点击 Agree(同意)以接受 Prestashop 许可协议。

输入你的店铺信息,以及 Prestashop 安装所需的新的管理员用户名和密码。然后再次点击 Next(下一步)。

你可以在 Prestashop 中安装演示数据和附加模块。然后再次点击 Next(下一步)。

输入你的 MariaDB 数据库详细信息,然后点击 Next(下一步)继续安装。

安装完成后,你将看到如下界面。点击 Discover your store(查看你的店铺)可进入 Prestashop 首页,或点击 Manage your store(管理你的店铺)进入 Prestashop 管理后台。

在访问 Prestashop 管理后台之前,返回终端并运行以下命令删除 /install 目录。
sudo rm -rf /var/www/prestashop/install
总结
恭喜!你已成功在 Ubuntu 24.04 服务器上安装了 Prestashop。现在 Prestashop 运行在 LAMP 技术栈之上,并通过 Certbot 和 Let's Encrypt 使用 HTTPS 进行了保护。