PrestaShop 是一个免费的开源电子商务平台。它基于PHP和MySQL,可以使用免费和高级的插件和主题进行扩展。
PrestaShop具有直观的管理界面,多个支付网关,多语言,分析和报告功能,是许多在线商家的首选平台。
在本教程中,我们将向您展示如何在Ubuntu 18.04服务器上安装PrestaShop。我们将使用Nginx作为网络服务器,使用最新的PHP 7.2和MySQL/MariaDB作为数据库服务器。
先决条件
在继续本教程之前,请确保满足以下先决条件:
安装免费的Let's Encrypt SSL证书。
将系统软件包更新到最新版本并安装 unzip实用程序:
sudo apt update && sudo apt upgrade
sudo apt install unzip
创建MySQL数据库
PrestaShop将其信息存储在MySQL数据库中。
如果您的服务器上安装了 MySQL 或 MariaDB ,则可以跳过此步骤;如果没有,则可以通过键入以下内容从Ubuntu的默认存储库中安装MySQL 5.7服务器软件包:
sudo apt install mysql-server mysql-client
对于全新安装的MySQL,建议运行mysql_secure_installation
命令以提高MySQL服务器的安全性。
要创建数据库,请登录mysql shell:
sudo mysql
在MySQL Shell中,运行以下SQL语句以创建名为prestashop
的新数据库:
CREATE DATABASE prestashop;
接下来,创建一个名为prestashop
的MySQL用户帐户,并通过运行以下命令为授予该用户必要的权限:
GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password';
不要忘记使用强密码更改change-with-strong-password
。
完成后,通过键入以下内容退出mysql控制台:
EXIT;
安装和配置PHP
PHP 7.2 是Ubuntu 18.04中的默认PHP版本,PrestaShop完全支持并建议使用它。
运行以下命令来安装PHP和所有必需的PHP模块:
sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap
一旦完成安装过程,PHP-FPM服务将自动启动。您可以输入以下内容进行验证:
sudo systemctl status php7.2-fpm
输出应如下所示:
* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2019-03-24 11:53:33 PDT; 14s ago
Docs: man:php-fpm7.2(8)
Main PID: 15853 (php-fpm7.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
运行以下 sed
命令来设置推荐的PHP选项:
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini
正在下载PrestaShop
在撰写本文时,PrestaShop的最新稳定版本为1.7.5.1
。
使用以下 wget命令从 PrestaShop下载页面下载最新版本的PrestaShop:
cd /tmp
wget https://download.prestashop.com/download/releases/prestashop_1.7.5.1.zip
下载完成后,创建一个包含我们的PrestaShop文件的目录:
sudo mkdir -p /var/www/html/example.com
接下来,提取PrestaShop归档文件:
unzip prestashop_*.zip
该档案文件包含另一个 zip文件“ prestashop.zip”,其中包含所有PrestaShop文件。将文件提取到域的文档根目录中:
sudo unzip prestashop.zip -d /var/www/html/example.com
设置正确的权限,以使Web服务器可以使用以下 own命令:
对网站的文件和目录进行完全访问
sudo chown -R www-data: /var/www/html
配置Nginx
到现在为止,如果不检查本教程的先决条件,则应该已经在Ubuntu服务器上安装了带有SSL证书的Nginx。
打开您的文本编辑器并创建以下文件:
sudo nano /etc/nginx/sites-available/example.com
/etc/nginx/sites-available/example.com
# Redirect HTTP -> HTTPS
server {
listen 80;
server_name www.example.com example.com;
include snippets/letsencrypt.conf;
return 301 https://example.com$request_uri;
}
# Redirect WWW -> NON WWW
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl http2;
server_name example.com;
root /var/www/html/example.com;
index index.php;
# SSL parameters
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem;
include snippets/ssl.conf;
include snippets/letsencrypt.conf;
# log files
access_log /var/log/nginx/example.com.access.log;
error_log /var/log/nginx/example.com.error.log;
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
log_not_found off;
}
}
请不要忘记将example.com替换为您的PrestaShop域,并为SSL证书文件设置正确的路径。在此配置中使用的代码段是在本指南中创建的。
在重新启动Nginx服务之前,请进行测试以确保没有语法错误:
sudo nginx -t
如果没有错误,输出应如下所示:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
最后,通过输入,重新启动Nginx服务。
sudo systemctl restart nginx
安装PrestaShop
现在已下载PrestaShop且服务器配置已完成,您可以通过Web界面完成安装。
打开浏览器,输入您的域,然后会出现类似以下的屏幕:
选择您要使用的语言,然后单击“下一步”按钮。
在下一个屏幕上,将显示PrestaShop许可协议。阅读许可,然后选择“我同意上述条款和条件。”继续:
接下来,您将看到以下信息页面:
确保满足所有预安装要求,并且您的系统与PrestaShop兼容。
在下一个屏幕上,您需要输入商店的详细信息。电子邮件地址是访问PrestaShop管理后端的用户名。
接下来,安装向导将要求您输入数据库连接详细信息。输入您先前创建的MySQL用户和数据库详细信息:
点击“下一步”按钮,安装将开始:
安装过程可能需要几分钟,完成后将显示以下页面,通知您PrestaShop已安装。
出于安全原因,您需要删除安装目录。为此,请返回到终端并输入以下 rm
命令:
sudo rm -rf /var/www/html/example.com/install
要访问PrestaShop管理信息中心,请点击“管理您的商店”按钮。输入您的电子邮件和密码,您将被重定向到管理仪表板。
您可以从此处开始自定义PrestaShop安装并添加新产品。
结论
您已成功在Ubuntu 18.04服务器上安装PrestaShop。 PrestaShop文档是学习更多有关如何管理PrestaShop安装的好起点。
如果您有任何疑问,请在下面发表评论。