如何使用NGINX安装Shopware并在Fedora 30上进行加密

如何使用NGINX安装Shopware并在Fedora 30上进行加密

Shopware是下一代开源电子商务软件,基于Symfony 3,Doctrine等尖端技术2 Zend Framework Shopware将成为您下一个电子商务项目的理想平台,本教程将通过使用NGINX作为Web服务器,引导您逐步完成Fedora 30系统上的Shopware Community Edition(CE)安装。

要求条件

确保您的系统满足以下最低要求:

  • 已安装NGINX或Apache 2.x(带有mod_rewrite)Web服务器的基于Linux的操作系统。
  • PHP 5.6.4或更高版本,带有ctype,gd,curl,dom,hash,iconv,zip,json,mbstring,openssl,session,simplexml,xml,zlib,fileinfo和pdo / mysql扩展,强烈建议使用PHP 7.1或更高版本。
  • MySQL 5.5.0或更高版本。
  • 可以设置cron作业。
  • 至少4 GB的可用硬盘空间。
  • IonCube Loader版本5.0.0或更高版本(可选)。

注意: Shopware 5当前最多 PHP 7.2.x 兼容的。

先决条件

  • 运行Fedora 29的操作系统。
  • 具有sudo特权的非root用户。

我将在本教程中使用域名example.com,请在下面的命令和配置文件中(特别是在nginx配置文件和Let’s crypto命令中)将example.com替换为您自己的域名。

初步步骤

检查您的Fedora版本:

cat /etc/fedora-release# Fedora release 29 (Twenty Nine)

设置时区:

timedatectl list-timezonessudo timedatectl set-timezone 'Region/City'

更新您的操作系统软件包(软件)。这是重要的第一步,因为它可以确保您拥有操作系统默认软件包的最新更新和安全修复程序:

sudo dnf upgrade -y

安装一些基本软件包,这些软件包对于Fedora操作系统的基本管理是必需的:

sudo dnf install -y curl wget vim git sudo unzip socat bash-completion

第1步-安装PHP和PHP扩展

安装PHP以及Shopware所需的PHP扩展:

sudo dnf install -y php php-cli php-fpm php-common php-mysqlnd php-curl php-json php-zip php-gd php-xml php-mbstring php-opcache

要显示在模块中编译的PHP,可以运行:

php -mctypecurlexiffileinfo. . .. . .

检查PHP版本:

php --version# PHP 7.2.16 (cli) (built: Apr 30 2019 08:37:17) ( NTS )# Copyright (c) 1997-2018 The PHP Group# Zend Engine v3.3.5, Copyright (c) 1998-2018 Zend Technologies#    with Zend OPcache v7.3.5, Copyright (c) 1999-2018, by Zend Technologies

启动并启用PHP-FPM服务:

sudo systemctl start php-fpm.servicesudo systemctl enable php-fpm.service

我们可以继续下一步,即安装IonCube Loader。

步骤2-安装IonCube Loader(可选)

此步骤是可选步骤,因为Shopware现在无需IonCube,也可以使用,但是可能仍然有使用IonCube的扩展程序或主题,因此安装它不会受到损害。下载IonCube Loader:

cd /tmp && wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz

提取加载程序:

tar xfz ioncube_loaders_lin_*.gz

通过运行以下命令在系统上找到PHP扩展目录:

php -i | grep extension_dir# extension_dir => /usr/lib64/php/modules => /usr/lib64/php/modules

将ionCube Loader复制到PHP扩展目录中:

sudo cp /tmp/ioncube/ioncube_loader_lin_7.2.so /usr/lib64/php/modules

通过PHP配置包含加载程序:

sudo vim /etc/php.ini

然后在文件中添加一行以包含ion Cube loader,它可以在以下文件中的任何位置 [PHP] 行:

zend_extension = /usr/lib64/php/modules/ioncube_loader_lin_7.2.so

保存文件并重新启动PHP-FPM:

sudo systemctl restart php-fpm.service

步骤3-安装MariaDB并为Shopware创建数据库

安装MariaDB数据库服务器:

sudo dnf install -y mariadb-server

检查MariaDB版本:

mysql --version# mysql  Ver 15.1 Distrib 10.2.23-MariaDB, for Linux (x86_64) using readline 5.1

启动并启用MariaDB服务:

sudo systemctl start mariadb.servicesudo systemctl enable mariadb.service

mysql_secure installation 用于提高MariaDB安全性并为MariaDB设置密码的脚本 root 使用者:

sudo mysql_secure_installation

回答每个问题:

Would you like to setup VALIDATE PASSWORD plugin? NNew password: your_secure_passwordRe-enter new password: your_secure_passwordRemove anonymous users? [Y/n] YDisallow root login remotely? [Y/n] YRemove test database and access to it? [Y/n] YReload privilege tables now? [Y/n] Y

以root用户身份连接到MariaDB shell:

sudo mysql -u root -p# Enter password

为Shopware创建一个空的MariaDB数据库和用户,并记住凭据:

mysql> CREATE DATABASE dbname;mysql> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';mysql> FLUSH PRIVILEGES;

从MariaDB退出:

mysql> exit

更换 dbnameusernamepassword 用你自己的名字。

步骤4-安装Acme.sh客户端并获取“让我们加密”证书(可选)

不必使用HTTPS保护您的网站,但这是保护您的网站流量的一种很好的做法。为了从Let’s Encrypt获得TLS证书,我们将使用acme.sh客户端。Acme.sh是用于获取以下内容的纯Unix shell软件来自Let’s Encrypt的TLS证书具有零依赖性。

下载并安装acme.sh:

sudo su - rootgit clone https://github.com/Neilpang/acme.sh.gitcd acme.sh ./acme.sh --install --accountemail [email protected]source ~/.bashrccd ~

检查acme.sh版本:

acme.sh --version# v2.8.1

取得 RSAECC / ECDSA 您的域/主机名的证书:

# RSA 2048acme.sh --issue --standalone -d example.com --keylength 2048# ECDSAacme.sh --issue --standalone -d example.com --keylength ec-256

如果您想使用假证书进行测试,可以添加 --staging 标记上述命令。

运行上述命令后,您的证书和密钥将位于:

  • 对于 RSA/home/username/example.com 目录。
  • 对于 ECC / ECDSA/home/username/example.com_ecc 目录。

要列出您颁发的证书,可以运行:

acme.sh --list

创建一个目录来存储您的证书。我们将使用一个目录 /etc/letsencrypt.

mkdir -p /etc/letsecnrypt/example.comsudo mkdir -p /etc/letsencrypt/example.com_ecc

将证书安装/复制到/ etc / letsencrypt目录。

# RSAacme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"# ECC/ECDSAacme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"

所有证书将每60天自动更新一次。

获得证书后,从root用户退出并返回普通的sudo用户:

exit

第5步-安装和配置NGINX

安装NGINX Web服务器:

sudo dnf install -y nginx

检查NGINX版本:

nginx -v# nginx version: nginx/1.14.2

启动并启用NGINX服务:

sudo systemctl start nginx.servicesudo systemctl enable nginx.service

配置NGINX for Shopware.Run sudo vim /etc/nginx/conf.d/shopware.conf 并添加以下配置:

server {
    listen 80;
    listen [::]:80;
    
    server_name example.com;
    root /var/www/shopware;

    index shopware.php index.php;

    location / {
        try_files $uri $uri/ /shopware.php$is_args$args;
    }

    location /recovery/install {
      index index.php;
      try_files $uri /recovery/install/index.php$is_args$args;
    }

    location ~ .php$ {
        include fastcgi.conf;
        fastcgi_pass unix:/run/php-fpm/www.sock;
    }
}

检查NGINX配置是否存在语法错误:

sudo nginx -t

重新加载NGINX服务:

sudo systemctl reload nginx.service

第6步-安装Shopware

为Shopware创建文档根目录:

sudo mkdir -p /var/www/shopware

更改所有权 /var/www/shopware {your_user}的目录,将{your_user}替换为当前登录用户的用户名:

sudo chown -R {your_user}:{your_user} /var/www/shopware

导航到文档根目录:

cd /var/www/shopware

通过wget下载并解压缩最新版本的Shopware:

wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zipunzip shopware.ziprm shopware.zip

注意: 如果有更新版本,请更新下载URL。

更改所有权 /var/www/shopware 目录到 nginx

sudo chown -R nginx:nginx /var/www/shopware

sudo vim /etc/php-fpm.d/www.conf 并将用户和组设置为 nginx最初,它们将设置为 apache:

sudo vim /etc/php-fpm.d/www.conf
user = nginxgroup = nginx

建立 /var/lib/php/session/ 目录并将所有权更改为 nginx

sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session

增加 memory_limit = 256Mupload_max_filesize = 6M,并设置 allow_url_fopen = On 如果尚未设置 /etc/php/7.2/fpm/php.ini 文件

sudo vim /etc/php.ini

进行更改后 /etc/php.ini 归档,重新加载 php-fpm.service:

sudo systemctl reload php-fpm.service

在网络浏览器中打开您的域/ IP,然后按照安装向导进行操作。Shopware的后端位于 /backend 范例: http://example.com/backend

第7步-完成Shopware设置

首先选择语言,然后单击下一步:

接下来,确保满足所有Shopware要求:

满足系统要求

同意Shopware TOS,然后单击下一步:

接受许可证

输入数据库凭据,然后单击下一步:

Shopware数据库设置

开始安装以创建数据库表:

安装数据库表

之后,您将看到有关成功导入数据库的消息:

数据库初始化成功

选择一个许可证,然后单击下一步:

选择许可证

填写一些基本设置以完成设置,然后单击下一步:

基本设定

安装完成。

安装完成

要访问管理区域,请在您的URL后面附加/后端。

Shopware后端登录

您已成功安装Shopware。享受您的新网上商店!

Sidebar