如何在 Ubuntu 18.04 上安装 OpenCart
介绍
通过本教程,你将学会如何在 Ubuntu 18.04 服务器上安装 OpenCart。
需求
- 域名
- Ubuntu 上安装 Nginx 服务器
- SSL 证书
更新系统软件包至最新版,并使用下面命令进行安装:
sudo apt update && sudo apt upgrade
sudo apt install unzip
步骤 1 - 创建 MySQL 数据库
1) 如果系统中已有 MySQL 或 MariaDB 可跳过此步。如果没有,你可以使用下面命令下载 MySQL 5.7 :
sudo apt install mysql-server mysql-client
注意: 新安装的 MySQL,推荐运行, mysql_secure_installation 命令去提示 MySQL 服务器的安全性。
2) 然后使用下面命令登陆 MySQL shell:
sudo mysql
3) 现在,执行 SQL 语句,创建新数据库:
CREATE DATABASE opencart;
4) 然后创建 MySQL 用户名,并授权所有必须的权限:
GRANT ALL ON opencart.* TO 'opencart'@'localhost' IDENTIFIED BY 'change-with-strong-password';
将 change-with-strong-password 替换为强密码。
5) 完成后,使用下面命令退出 MySQL
EXIT;
步骤 2 - 安装配置 PHP
1) Ubuntu 18.04 安装的默认版本与该安装不兼容。因此,我们将添加 PPA 以安装最新版 PHP 8.2。由于 Nginx 被用作 web 服务器,你需要安装 PHP-FPM 包。
添加 PPA:
sudo apt update
sudo apt -y install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
安装 PHP 及其扩展:
sudo apt install php php-common php-cli php-fpm php8.2-opcache php-gd php-mysql php-curl php-intl php8.2-xsl php-mbstring php-zip php-bcmath php-soap
2) 安装完这些 PHP 包后,它们将自动启动。你可以用下面命令验证:
sudo systemctl status php8.2-fpm
3) 输出显示 FPM 服务器被激活且在运行:
Output
● php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.2-fpm.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2019-02-25 10:45:42 UTC; 53s ago
Docs: man:php-fpm8.2(8)
Main PID: 27446 (php-fpm8.2)
Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
Tasks: 3 (limit: 505)
CGroup: /system.slice/php8.2-fpm.service
├─27446 php-fpm: master process (/etc/php/8.2/fpm/php-fpm.conf)
4) 然后,使用 sed 修改 php.ini,设置 PHP 选项:
sudo sed -i "s/memory_limit = .*/memory_limit = 1024M/" /etc/php/8.2/fpm/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/8.2/fpm/php.ini
sudo sed -i "s/zlib.output_compression = .*/zlib.output_compression = on/" /etc/php/8.2/fpm/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 18000/" /etc/php/8.2/fpm/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/8.2/fpm/php.ini
sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/8.2/fpm/php.ini
设置PHP默认版本为 8.2
:
sudo update-alternatives --config php
选择正确的版本号 PHP 8.2
Output
There are 4 choices for the alternative php (providing /usr/bin/php).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/php.default 100 auto mode
1 /usr/bin/php.default 100 manual mode
2 /usr/bin/php7.2 72 manual mode
3 /usr/bin/php7.4 74 manual mode
* 4 /usr/bin/php8.2 82 manual mode
Press <enter> to keep the current choice[*], or type selection number: 4
步骤 3 - 安装 OpenCart
1) 本文写作时,OpenCart 的最新版是 4.0.2.2。
下载前,先创建一个目录保存OpenCart 文件:
sudo mkdir -p /var/www/html/example.com
2) 然后,使用如下命令从 OpenCart 仓库中下载最新版:
cd /tmp
wget https://github.com/opencart/opencart/releases/download/4.0.2.2/opencart-4.0.2.2.zip
3) 下一步,解压 OpenCart 文件并移动到域名根目录:
unzip opencart-*.zip
sudo mv /tmp/opencart-4.0.2.1/upload/* /var/www/html/example.com/
4) 然后使用 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}
5) 授权使服务器有访问网站文件和目录的权限。
sudo chown -R www-data: /var/www/html
步骤 4 - 配置 Nginx
1)现在,创建以下文件:
sudo nano /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/php8.2-fpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
log_not_found off;
}
}
否则,可以使用下面配置,以使用 IP 地址访问:
server {
listen 80;
server_name example.com;
root /var/www/html/example.com;
index index.php;
# 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/php8.2-fpm.sock;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
expires max;
log_not_found off;
}
}
使用你自己的 OpenCart 域名替换 example.com,并设置正确的 SSL 请求证书文件路径。所有的 HTTP 请求会直接重定向到 HTTPS。
2) 重启前检测语法错误:
sudo nginx -t
3) 如果没有出错,你将看到如下输出:
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
4) 然后将其链接到 sites-enabled
并取消默认配置的链接:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default
4) 重启 NGINX 服务器
sudo systemctl restart nginx
步骤 5 - 进行 OpenCart 安装
1) OpenCart 下载完且完成服务器配置后,你需要处理网页安装。
打开浏览器输入域名,你可以看到类似于下面屏幕的内容。
2) 选择你需要的语言,然后在同意许可协议后点击 Continue。
3) This reveals the information tab:
4) 如果所有预安装要求都符合,点击 Continue
继续。
5) 下一屏将要求输入数据库连接详情。
6) 接下来输入用户名,密码,邮箱并点击 Continue
。
7) 然后就会跳转到确认安装完成的页面。
8) 点击 Login to your Administration
按钮,访问后台。
9) 首次登录后台会弹出弹窗,要求将存储目录移除网站目录。
10) 选择默认的 Automatically Move
选项并点击红色的 Move
按钮。该目录应该是服务器有权访问的目录。
现在可以自定义安装并添加新产品了。
11) 删除安装目录。回到终端并输入如下命令:
sudo rm -rf /var/www/html/example.com/install