如何在Ubuntu 18.04上安装OpenCart
OpenCart是一个免费的开源PHP电子商务平台,结合了强大的功能,灵活性和友好的用户界面。
OpenCart具有用户管理,多商店,会员,折扣,产品注释,多语言和多种支付网关等功能,是许多在线商家的首选平台。
在本教程中,我们将向我们展示如何在Ubuntu 18.04服务器上安装OpenCart。
我们将使用Nginx作为网络服务器,使用最新的PHP 7.2和MySQL/MariaDB作为数据库服务器。
准备工作
在继续本教程之前,请确保满足以下准备工作:
- 有一个指向公共服务器IP的域名。我们将使用'example.com'。
- 按照以下说明将Nginx安装在Ubuntu服务器上。
- 为域安装的SSL证书,用于加密用户信息。我们可以按照以下说明安装免费的Let's Encrypt SSL证书。
将系统软件包更新到最新版本并安装unzip实用程序:
sudo apt update && sudo apt upgradesudo apt install unzip
创建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语句以创建一个名为'opencart'的新数据库:
CREATE DATABASE opencart;
接下来,创建一个名为“ opencart”的MySQL用户帐户,并通过运行以下命令向该用户授予必要的权限:
GRANT ALL ON opencart.* TO 'opencart'@'localhost' IDENTIFIED BY 'change-with-strong-password';
确保使用强密码更改“使用强密码更改”。
完成后,通过键入以下内容退出mysql控制台:
EXIT;
安装和配置PHP
完全支持并建议将PHP 7.2(这是Ubuntu 18.04中的默认PHP版本)用于OpenCart。
由于我们将Nginx用作网络服务器,因此我们还将安装PHP-FPM软件包。
运行以下命令以安装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
输出应指示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 Mon 2019-02-25 10:45:42 UTC; 53s ago Docs: man:php-fpm7.2(8) Main PID: 27446 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec" Tasks: 3 (limit: 505) CGroup: /system.slice/php7.2-fpm.service ├─27446 php-fpm: master process (/etc/php/7.2/fpm/php-fpm.conf)
通过使用'sed'编辑'php.ini'文件来设置必需和推荐的PHP选项:::
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.inisudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.inisudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.inisudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini
安装OpenCart
在撰写本文时,OpenCart的最新稳定版本是版本'3.0.3.1'。
在下载OpenCart档案之前,首先创建一个目录,其中将存放我们的OpenCart文件:
sudo mkdir -p /var/www/html/example.com
使用以下wget命令从OpenCart Github存储库下载最新版本的OpenCart:
cd /tmpwget https://github.com/opencart/opencart/releases/download/3.0.3.1/opencart-3.0.3.1.zip
下载完成后,解压缩OpenCart档案并将解压缩的文件移到域的文档根目录中:
unzip opencart-*.zipsudo mv /tmp/upload/* /var/www/html/example.com/
使用“ cp”命令复制配置文件:
sudo cp /var/www/html/example.com/{config-dist.php,config.php}sudo cp /var/www/html/example.com/admin/{config-dist.php,config.php}
设置正确的权限,以使Web服务器可以使用以下chown命令对的文件和目录进行完全访问:
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; } }
不要忘记用OpenCart域替换example.com,并为SSL证书文件设置正确的路径。
所有HTTP请求都将重定向到HTTPS。
本教程中创建了此配置中使用的摘录。
在重新启动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
完成OpenCart安装
现在已经下载了OpenCart并完成了服务器配置,我们可以通过Web界面完成安装。
打开浏览器,输入域,然后会出现类似以下的屏幕:
阅读OpenCart许可协议,选择我们要使用的语言,然后单击“继续”按钮。
接下来,我们将看到以下信息页面:
确保满足所有预安装要求,然后单击“继续”按钮。
在下一个屏幕上,安装向导将要求我们输入数据库连接详细信息。
输入我们先前创建的MySQL用户和数据库详细信息。
输入管理员的用户名,密码和电子邮件地址,然后单击“继续”按钮开始安装。
安装完成后,我们将进入一个页面,通知我们已经安装了OpenCart。
要访问OpenCart管理仪表板,请单击“登录到管理”按钮。
输入用户名和密码,我们将被重定向到管理仪表板。
首次登录时,将出现一个弹出窗口,要求我们将存储目录移出Web目录。
保留默认的“自动移动”选项,然后单击红色的“移动”按钮。
Web服务器必须可以访问要移动“存储”目录的目录。
从其中我们可以开始自定义OpenCart安装并添加新产品。
我们还需要删除安装目录。
为此,请返回到终端并键入以下“ rm”命令:
sudo rm -rf /var/www/html/example.com/install