Поиск по сайту:

Как установить Shopware с NGINX и Lets Encrypt на FreeBSD 12


На этой странице

  1. Требования
  2. Предпосылки
  3. Начальные шаги
  4. Шаг 1. Установите PHP и расширения PHP
  5. Шаг 2. Установите загрузчик IonCube (необязательно)
  6. Шаг 3. Установите MariaDB и создайте базу данных для Shopware.
  7. Шаг 4. Установите клиент Acme.sh и получите сертификат Lets Encrypt (необязательно)
  8. Шаг 5. Установите и настройте NGINX
  9. Шаг 6. Установите ПО для магазина
  10. Шаг 7. Завершите настройку Shopware
  11. Ссылки

Shopware — это новое поколение программного обеспечения для электронной коммерции с открытым исходным кодом. Основанное на передовых технологиях, таких как Symfony 3, Doctrine2 и Zend Framework Shopware станет идеальной платформой для вашего следующего проекта электронной коммерции. В этом руководстве вы узнаете, как установить Shopware Community Edition (CE) в системе FreeBSD 12 с использованием NGINX в качестве веб-сервера.

Требования

Убедитесь, что ваша система соответствует следующим минимальным требованиям:

  • Операционная система на базе Linux с установленным веб-сервером NGINX или Apache 2.x (с mod_rewrite).
  • 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 ГБ свободного места на жестком диске.
  • IonCube Loader версии 5.0.0 или выше (необязательно).

ПРИМЕЧАНИЕ. В настоящее время Shopware 5 совместим с PHP 7.2.x.

Предпосылки

  • Операционная система под управлением FreeBSD 12.
  • Пользователь без полномочий root с привилегиями sudo.

В этом уроке я буду использовать доменное имя example.com. Пожалуйста, замените слово example.com своим собственным доменным именем везде, где оно встречается в командах и файлах конфигурации ниже (особенно в файле конфигурации Nginx и командах Lets encrypt).

Начальные шаги

Проверьте свою версию 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, а также необходимые расширения PHP для Shopware:

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 (необязательно)

Этот шаг является необязательным, поскольку теперь Shopware работает без IonCube, но могут существовать расширения или темы, использующие IonCube, поэтому его установка не помешает. Загрузите загрузчик IonCube:

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 в каталог расширений 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 install, чтобы улучшить безопасность MariaDB, и установите пароль для пользователя root в MariaDB:

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

Подключитесь к оболочке MariaDB как пользователь root:

sudo mysql -u root -p
# Enter password

Создайте пустую базу данных MariaDB и пользователя для Shopware и запомните учетные данные:

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 и получите сертификат Lets Encrypt (необязательно)

Защита вашего веб-сайта с помощью HTTPS не является обязательной, но это хорошая практика для защиты трафика вашего сайта. Чтобы получить сертификат TLS от Lets Encrypt, мы будем использовать клиент acme.sh. Acme.sh — это чистое программное обеспечение оболочки Unix для получения сертификатов TLS от Lets Encrypt без каких-либо зависимостей.

Загрузите и установите acme.sh:

sudo pkg install -y acme.sh

Проверьте версию acme.sh:

acme.sh --version
# v2.8.2

Получите сертификаты RSA и ECC/ECDSA для своего домена/имени хоста:<br>

# 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:

sudo pkg install -y nginx

Проверьте версию NGINX:

nginx -v
# nginx version: nginx/1.14.2

Запустите и включите сервис NGINX:

sudo sysrc nginx_enable=yes
sudo service nginx start

Настройте Nginx для Shopware, выполнив:

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:

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:

Согласитесь с TOS Shopware и нажмите «Далее»:

Введите учетные данные базы данных и нажмите «Далее»:

Запустите установку для создания таблиц базы данных:

После этого вы увидите сообщение об успешном импорте базы данных:

Выберите лицензию и нажмите Далее:

Заполните несколько основных параметров, чтобы завершить настройку, и нажмите «Далее»:

Установка завершена.

Чтобы получить доступ к административной панели, добавьте /backend к своему URL-адресу.

Вы успешно установили Shopware. Наслаждайтесь своим новым интернет-магазином!

Ссылки

  • https://en.shopware.com/
  • https://github.com/shopware/shopware