如何在Ubuntu 18.04上安装OpenCart

2023年 7月 21日 43.6k 0

OpenCart 是一个免费的开放源代码PHP电子商务平台,结合了强大的功能,灵活性和友好的用户界面。

OpenCart具有用户管理,多商店,会员,折扣,产品评论,多语言和多种支付网关等功能,是许多在线商家的首选平台。

在本教程中,我们将向您展示如何在Ubuntu 18.04服务器上安装OpenCart。我们将使用Nginx作为网络服务器,使用最新的PHP 7.2和MySQL/MariaDB作为数据库服务器。

先决条件

在继续本教程之前,请确保满足以下先决条件:

  • 拥有一个指向您的公共服务器IP的域名。我们将按照这些说明。
  • 为您的域安装的SSL证书,将example.com
  • Nginx安装在Ubuntu服务器上,以加密用户信息。您可以按照这些说明。

安装免费的Let's Encrypt SSL证书。

将系统软件包更新到最新版本并安装 unzip实用程序:

sudo apt update && sudo apt upgrade
sudo 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';

请确保您使用强密码更改了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.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

安装OpenCart

在撰写本文时,OpenCart的最新稳定版本为3.0.3.1

在下载OpenCart档案之前,请先创建一个目录,其中将存放我们的OpenCart文件:

sudo mkdir -p /var/www/html/example.com

使用以下 wget命令从 OpenCart Github存储库下载最新版本的OpenCart:

cd /tmp
wget https://github.com/opencart/opencart/releases/download/3.0.3.1/opencart-3.0.3.1.zip

下载完成后,解压缩OpenCart档案,将提取的文件移动到域的文档根目录:

unzip opencart-*.zip
sudo 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服务器可以使用以下 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替换为您的OpenCart域,并为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许可协议,选择您要使用的语言,然后单击Continue按钮。

接下来,您会看到以下信息页面:

确保满足所有预安装要求,然后单击Continue按钮。

在下一个屏幕上,安装向导将要求您输入数据库连接详细信息。输入您先前创建的MySQL用户和数据库详细信息。

输入管理员的用户名,密码和电子邮件地址,然后单击Continue按钮开始安装。

安装完成后,您会进入一个页面,通知您已安装OpenCart。

要访问您的OpenCart管理仪表板,请单击Login to your Administration按钮。输入您的用户名和密码,您将被重定向到管理仪表板。

首次登录时,会出现一个弹出窗口,要求您将存储目录移到Web目录之外。

保留默认的Automatically Move选项,然后单击红色的Move按钮。 Web服务器必须可以访问要移动storage目录的目录。

您可以从此处开始自定义OpenCart安装并添加新产品。

您还需要删除安装目录。为此,请返回到终端并键入以下 rm 命令:

sudo rm -rf /var/www/html/example.com/install

结论

恭喜,您已经在Ubuntu 18.04服务器上成功安装了OpenCart。

OpenCart文档是学习更多有关如何管理OpenCart安装的好起点。

如果您有任何疑问,请在下面发表评论。

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论