如何在 Ubuntu 15.10 上使用 Nginx 和 SSL 安装 OpenCart 2
在此页
- 第 1 步 - 安装 Nginx
- 第 2 步 - 安装和配置 PHP-FPM
- 第 3 步 - 安装和配置 MariaDB
- 第 4 步 - 安装 SSL
- 第 5 步 - 为 OpenCart 配置虚拟主机
- 第 6 步 - 安装和配置 OpenCart
- 结论
OpenCart 是基于 PHP 和 MySQL 的免费开源电子商务软件。 OpenCart 允许您以最低成本设置和运营自己的在线商店。该软件适用于中小型在线企业,易于安装,并且有许多附加组件和扩展可用。 OpenCart 带有多种语言的翻译并支持多种货币。
本教程涵盖了在 Ubuntu 15.10 上使用 Nginx、PHP-fpm 和 MariaDB 安装 OpenCart。
先决条件
- Ubuntu 15.10 - 64 位
- 根权限
第 1 步 - 安装 Nginx
我们将使用 nginx 作为网络服务器,它是一个轻量级的网络服务器,速度快,内存占用小。使用 Ubuntu 存储库中的 apt 命令安装 nginx:
sudo apt-get install nginx
现在用 curl 检查 Nginx,或者用 firefox 等浏览器访问你的服务器 IP。
curl -I 192.168.1.101
您应该会看到 Ubuntu 默认页面。
第 2 步 - 安装和配置 PHP-FPM
在这一步中,我将安装 php-fpm 版本,php-fpm(FastCGI 进程管理器)是经典 PHP FastCGI 模式的现代替代方案。我们将使用 OpenCart 所需的一些 php 模块安装 php-fpm。
- php-mysql
- php-gd
- php-curl
- php-mcrypt
使用下面的单个 apt 命令安装 PHP-FPM 和 PHP 扩展:
sudo apt-get install php5 php5-fpm php5-mysql php5-curl php5-gd php5-mcrypt
安装包后,转到 php-fpm 配置目录并使用 vim 编辑 php.ini 文件。
cd /etc/php5/fpm
vim php.ini
取消注释行 773 并将值更改为 0 :
cgi.fix_pathinfo=0
保存文件并退出。
现在我们必须启用 OpenCart 所需的 mcrypt 模块。转到 php-fpm conf.d 目录并为 .ini 文件创建一个符号链接。
cd /etc/php5/fpm/conf.d/
ln -s ../../mods-available/mcrypt.ini mcrypt.ini
mcrypt 模块已启用,现在重新启动 php-fpm 和 nginx 以应用更改:
systemctl restart nginx
systemctl restart php5-fpm
现在我们应该验证 php-fpm 和 Nginx 是否正常工作。编辑 nginx 虚拟主机配置的默认值以启用 php 位置并在 web 根目录中创建一个 phpinfo 文件。
cd /etc/nginx/sites-available/
vim default
取消注释 php-fpm 指令:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
#
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
}
保存文件并退出。
转到 /var/www/html/ 目录并添加一个 phpinfo 文件。
cd /var/www/html/
echo "<?php phpinfo(); ?>" > info.php
访问服务器IP(我的IP是192.168.1.103):http://

Nginx 和 PHP-FPM 已正确配置。
第 3 步 - 安装和配置 MariaDB
MariaDB 是 MySQL 数据库服务器的一个分支。与 MySQL 相比,我更喜欢 MariaDB,但这取决于您在此步骤中使用哪个数据库服务器。使用 apt 命令安装 MariaDB:
sudo apt-get install mariadb-server mariadb-client
然后使用 mysql_secure_installation 命令配置 MariaDB/MySQL root 密码:
mysql_secure_installation
Set root password? [Y/n] Y
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y
MariaDB root 用户和密码已设置。现在我们必须为我们的 OpenCart 安装创建一个新的数据库和用户。登录到 mysql/mariadb shell 来创建所有这些。
登录到 MySQL/MariaDB shell 以创建数据库和用户。
mysql -u root -p
TYPE YOUR PASSWORD
create database opencartdb;
create user ';
flush privileges;

MySQL 数据库已创建,我们有一个名为 opencartdb 的新数据库和一个名为 opencartuser 和密码 [email 的用户。我们需要了解这些详细信息,以便稍后安装 OpenCart。请为您的安装使用更安全的密码。
第 4 步 - 安装 SSL
确保您的服务器上安装了 OpenSSL。
sudo apt-get install openssl
为 SSL 证书创建一个新目录并使用 OpenSSL 生成证书。
mkdir -p /etc/nginx/ssl
cd /etc/nginx/ssl
生成证书和密钥文件:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/opencart.key -out /etc/nginx/ssl/opencart.crt
修改私钥的权限为600:
chmod 600 opencart.key
SSL 证书安装完成。
第 5 步 - 为 OpenCart 配置 VirtualHost
在 Nginx sites-available 目录中为 OpenCart 创建一个新的虚拟主机配置文件。转到 Nginx 虚拟主机目录并使用 vim 创建新配置:
cd /etc/nginx/sites-available/
vim opencart
粘贴下面的配置:
server {
server_name www.myopencart.co; ## Your Domain
root /var/www/opencart/upload; ## Web Root Directory
index index.php index.html;
listen 80;
listen [::]:80;
listen 443 default ssl;
ssl_certificate /etc/nginx/ssl/opencart.crt;
ssl_certificate_key /etc/nginx/ssl/opencart.key;
# Redirect HTTP to HTTPS
if ($scheme = http) {
return 301 https://$server_name$request_uri;
}
access_log /var/log/nginx/myopencart_access.log;
location /image/data {
autoindex on;
}
location /admin {
index index.php;
}
location / {
try_files $uri @opencart;
}
location @opencart {
rewrite ^/(.+)$ /index.php?_route_=$1 last;
}
# Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS!
location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_ {
deny all;
}
# Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac).
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
location ~* \.(jpg|jpeg|png|gif|css|js|ico)$ {
expires max;
log_not_found off;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
将 server_name 行中的域名替换为您自己的域名。
保存文件并退出。
使用 sites-enabled 目录中 opencart 文件的符号链接激活新的虚拟主机,并使用 \nginx -t\ 命令检查 Nginx 配置语法。
ln -s /etc/nginx/sites-available/opencart /etc/nginx/sites-enabled/
nginx -t
第 6 步 - 安装和配置 OpenCart
我们使用 /var/www/ 目录来安装 OpenCart。转到 /var/www/ 目录,下载 OpenCart 并解压缩下载的 .zip 存档。
您可以从这里下载 opencart:http://www.opencart.com/?route=download/download。
cd /var/www/
unzip opencart-2.1.0.1.zip
将目录重命名为opencart,然后进入上传目录。
mv opencart-opencart-2.1.0.1/ opencart/
cd opencart/upload/
复制 upload 和 admin 目录中的 config-dist 文件:
cp config-dist.php config.php
cp admin/config-dist.php admin/config.php
然后回到 /var/www/ 目录,将 OpenCart 文件和目录的所有者更改为用户 www-data。
cd /var/www/
chown -R www-data:www-data opencart/
注意:我们以 www-data 用户和组的身份运行 nginx。如果您以自己的用户或用户 Nginx 运行 nginx,则将所有者更改为您自己的名称和组。
重新启动 nginx 和 php-fpm 以确保我们在设置的配置上没有错误:
systemctl restart nginx
systemctl restart php5-fpm
现在打开您的网络浏览器,在地址栏中输入您的 opencart 域名,我在本例中的域名是:www.myopencart.co。
安装程序将向您显示“许可协议”,阅读并单击“继续”。

安装程序现在检查您的服务器设置,确保所有状态字段都是“绿色”,然后单击“继续”。

安装程序将显示数据库和管理员帐户配置。填写我们之前创建的数据库的数据库详细信息并选择管理员用户名和密码,然后单击“继续\”。

OpenCart 安装完成,您可以访问您的网上商店域(在我的例子中是 www.myopencart.co)并登录到 OpenCart 后端。

不要忘记删除服务器上的安装目录。
cd /var/www/opencart/upload/
rm -rf install/
带有 Nginx 和 php-fpm 的 Opencart 已安装并运行
结论
Opencart 是一个用 PHP 编写的基于 Web 的应用程序,用于构建在线商店。适用于中小型网店。 Opencart 可以与 Apache 或 Nginx(带有 php-fpm)网络服务器一起安装,本教程涵盖了 OpenCart 安装与 nginx、php-fpm 和 MariaDB(MySQL 的一个分支)数据库。安装过程很简单,您只需确保您的服务器已为 OpenCart 做好准备,就像我们在本教程的第一章中所做的那样。