本页内容

  • 准备工作
  • 安装依赖项
  • 配置 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

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

安装完成后,使用以下命令检查 Apache Web 服务器状态:

sudo systemctl is-enabled apache2
sudo systemctl status apache2

可以看到下方显示 Apache Web 服务器正在运行并已启用。

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

使用以下命令检查 MariaDB 服务器状态:

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

你将看到类似的输出,表明 MariaDB 服务器正在运行且已启用。

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

现在通过以下命令检查 PHP 版本并列出已启用的扩展:

php -v
php -m

在下方输出中,可以看到已安装 PHP 8.3,并且 fileinfo、gd 和 opcache 等扩展也已启用。

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

最后,使用以下命令检查 Composer 和 Git 版本——你将看到已安装 Composer 2.7.1。

sudo -u www-data composer --version

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

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

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

接下来,运行以下查询,确认用户 prestashop 可以访问数据库 prestashopdb。

SHOW GRANTS FOR prestashop@localhost;

在下方输出中,可以看到用户 prestashop 能够访问数据库 prestashopdb。

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

最后,输入 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 安装做好准备。

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 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

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

使用 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(下一步)。

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

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

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

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

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

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

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

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

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

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

在 Ubuntu 24.04 服务器上通过 LAMP 技术栈安装 Prestashop 电子商务系统教程

在访问 Prestashop 管理后台之前,返回终端并运行以下命令删除 /install 目录。

sudo rm -rf /var/www/prestashop/install

总结

恭喜!你已成功在 Ubuntu 24.04 服务器上安装了 Prestashop。现在 Prestashop 运行在 LAMP 技术栈之上,并通过 Certbot 和 Let's Encrypt 使用 HTTPS 进行了保护。