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

Как установить Shopware с NGINX и Lets Encrypt на Fedora 30


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

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

Shopware — это новое поколение программного обеспечения для электронной коммерции с открытым исходным кодом. Основанная на передовых технологиях, таких как Symfony 3, Doctrine2 и Zend Framework, Shopware станет идеальной платформой для вашего следующего проекта электронной коммерции. В этом учебном пособии вы узнаете, как установить Shopware Community Edition (CE) в системе Fedora 30 с использованием 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.

Предпосылки

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

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

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

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

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

Настройте часовой пояс:

timedatectl list-timezones
sudo 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, а также необходимые расширения PHP для Shopware:

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 -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 systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Мы можем перейти к следующему шагу — установке IonCube Loader.

Шаг 2. Установите загрузчик IonCube (необязательно)

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

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 в каталог расширений PHP:

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

Включите загрузчик через конфигурацию PHP:

sudo vim /etc/php.ini

Затем добавьте строку в файл, чтобы включить загрузчик ionCube. Это может быть любое место в файле под строкой [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.service
sudo systemctl enable mariadb.service

Запустите скрипт 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

Замените имя_базы_данныхимя_пользователя и пароль своими именами.

Шаг 4. Установите клиент Acme.sh и получите сертификат Lets Encrypt (необязательно)

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

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

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh 
./acme.sh --install --accountemail 
source ~/.bashrc
cd ~

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

acme.sh --version
# v2.8.1

Получите сертификаты 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 systemctl reload nginx.service"

Все сертификаты будут автоматически обновляться каждые 60 дней.

После получения сертификатов выйдите из-под пользователя root и вернитесь к обычному пользователю sudo:

exit

Шаг 5 – Установите и настройте NGINX

Установите веб-сервер NGINX:

sudo dnf install -y nginx

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

nginx -v
# nginx version: nginx/1.14.2

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

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

Настройте NGINX для Shopware. Запустите 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:

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

Загрузите и разархивируйте последнюю версию Shopware с помощью wget:

wget https://releases.shopware.com/install_5.5.8_d5bf50630eeaacc6679683e0ab0dcba89498be6d.zip?_ga=2.141661361.269357371.1556739808-1418008019.1556603459 -O shopware.zip
unzip shopware.zip
rm 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 = nginx
group = nginx

Создайте каталог /var/lib/php/session/ и измените владельца на nginx.

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

Увеличьте memory_limit=256M и upload_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:

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

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

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

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

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

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

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

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

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

Ссылки

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