Как установить Shopware с NGINX и Lets Encrypt на FreeBSD 12
На этой странице
- Требования
- Предпосылки
- Начальные шаги
- Шаг 1. Установите PHP и расширения PHP
- Шаг 2. Установите загрузчик IonCube (необязательно)
- Шаг 3. Установите MariaDB и создайте базу данных для Shopware.
- Шаг 4. Установите клиент Acme.sh и получите сертификат Lets Encrypt (необязательно)
- Шаг 5. Установите и настройте NGINX
- Шаг 6. Установите ПО для магазина
- Шаг 7. Завершите настройку Shopware
- Ссылки
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