未分类 · 2019年12月5日 0

如何使用NGINX安装Shopware并在FreeBSD 12上进行加密

Shopware是下一代开源电子商务软件。基于 Symfony 3 , Doctrine 2 和 Zend Framework  Shopware 等尖端技术,它是您下一个电子商务项目的理想平台。 本教程将使用NGINX作为Web服务器,引导您完成FreeBSD 12系统上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兼容。

先决条件

  • 运行FreeBSD 12.的操作系统。
  • 具有sudo特权的非root用户。

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

初步步骤

检查您的FreeBSD版本:

uname -ro
# FreeBSD 12.0-RELEASE

设置时区:

tzsetup

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

freebsd-update fetch install
pkg update && pkg upgrade -y

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

pkg install -y sudo vim unzip wget bash socat

第1步-安装PHP和PHP扩展

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

sudo pkg install -y php72 php72-ctype php72-curl php72-dom php72-hash php72-iconv php72-gd php72-json php72-mbstring php72-openssl php72-session php72-simplexml php72-xml php72-zip php72-zlib php72-pdo php72-pdo_mysql php72-filter php72-ftp php72-tokenizer php72-calendar php72-pecl-APCu php72-opcache

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

php -m

ctype
curl
exif
fileinfo
. . .
. . .

检查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 sysrc php_fpm_enable=yes
sudo service php-fpm start

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

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

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

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

提取加载程序:

tar xfz ioncube_loaders_fre_*.tar.gz

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

php -i | grep extension_dir
# extension_dir => /usr/local/lib/php/20170718 => /usr/local/lib/php/20170718

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

sudo cp /tmp/ioncube/ioncube_loader_fre_7.2.so /usr/local/lib/php/20170718

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

sudo vim /usr/local/etc/php.ini

然后在文件中添加一行以包含ionCube加载程序。它可以在以下[PHP]行的文件中的任何位置:

zend_extension = /usr/local/lib/php/20170718/ioncube_loader_fre_7.2.so

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

sudo service php-fpm restart

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

安装MariaDB数据库服务器:

sudo pkg install -y mariadb102-client mariadb102-server

检查  MariaDB版本:

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

启动并启用MariaDB服务:

sudo sysrc mysql_enable="yes"
sudo service mysql-server start

运行  mysql_secure installation 脚本以提高  MariaDB安全性,并为MariaDB  用户设置密码  : root

sudo mysql_secure_installation

回答每个问题:

Would you like to setup VALIDATE PASSWORD plugin? N
New password: your_secure_password
Re-enter new password: your_secure_password
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

以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

替换dbname,username并password用自己的名字。

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

不必使用HTTPS保护您的网站,但这是保护您网站访问量的一种好习惯。为了从Let’s Encrypt获得TLS证书,我们将使用acme.sh客户端。Acme.sh是一个纯Unix Shell软件,用于从Let’s Encrypt获得TLS证书(零相关性)。

下载并安装acme.sh:

sudo pkg install -y acme.sh

检查acme.sh版本:

acme.sh --version
# v2.8.2

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

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.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.com sudo mkdir -p /etc/letsencrypt/example.com_ecc

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

# RSA
acme.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/ECDSA
acme.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 service nginx reload"

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

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

exit

第5步-安装和配置NGINX

安装NGINX Web服务器:

sudo pkg install -y nginx

检查NGINX版本:

nginx -v
# nginx version: nginx/1.14.2

启动并启用NGINX服务:

sudo sysrc nginx_enable=yes
sudo service nginx start

通过运行以下命令为Shopware配置Nginx:

sudo vim /usr/local/etc/nginx/shopware.conf

并使用以下配置填充文件:

server {
    listen 80;
    listen [::]:80;
    
    server_name example.com;
    root /usr/local/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 127.0.0.1:9000;
    }
}

运行sudo vim /usr/local/etc/nginx/nginx.conf并添加以下行以http {}阻止包含Shopware配置。

include shopware.conf;

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

sudo nginx -t

重新加载Nginx服务:

sudo service nginx reload

第6步-安装Shopware

为Shopware创建文档根目录:

sudo mkdir -p /usr/local/www/shopware

导航到文档根目录:

cd /usr/local/www/shopware

下载并解压缩 Shopware:

sudo wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zip
sudo unzip shopware.zip
sudo rm shopware.zip

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

提供适当的所有权:

sudo chown -R www:www /usr/local/www/shopware

增加memory_limit = 256M和upload_max_filesize = 6M,然后设置(allow_url_fopen = On如果尚未在/usr/local/etc/php.ini文件中设置):

sudo vim /usr/local/etc/php.ini

在/etc/php/7.2/fpm/php.ini文件中进行更改后,重新加载php-fpm.service:

sudo service php-fpm reload

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

第7步-完成Shopware设置

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

Shopware安装向导

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

Shopware系统要求

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

ShopWare的服务条款

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

配置数据库

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

创建数据库表

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

安装成功

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

发牌

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

基本商店设置

安装完成。

安装完成

要访问管理区域,请将/ backend附加到您的URL。

Shopware登录

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