Гид по технологиям

Установка Shopware 5 (CE) на Fedora 30 с NGINX

7 min read E-Commerce Обновлено 25 Nov 2025
Установка Shopware 5 на Fedora с NGINX
Установка Shopware 5 на Fedora с NGINX

Фото: логотип Shopware или интерфейс установки

О чём эта инструкция

Этот пошаговый материал показывает установку Shopware Community Edition на Linux-сервере под Fedora (в примерах использованы Fedora 29/30) с веб-сервером NGINX. Сохраняется совместимость с PHP 7.1–7.2 и выше; рекомендуемая версия PHP — 7.1+. В руководстве подробно описаны подготовка системы, установка зависимостей, опциональная установка IonCube, настройка MariaDB, получение TLS-сертификата через acme.sh, конфигурация NGINX и запуск инсталлятора Shopware через браузер.

Important: в оригинале автора использованы примеры с Fedora 29 и Fedora 30. Внимательно проверьте совместимость пакетов и репозиториев для вашей конкретной версии Fedora перед установкой.

Основные требования

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

  • Linux (Fedora с 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 / MariaDB 5.5.0 и выше.
  • Возможность настроить cron-задания.
  • Минимум 4 ГБ свободного места на диске.
  • IonCube Loader 5.0.0+ — опционально (нужен только для некоторых плагинов/тем).

NOTE: Shopware 5 совместим с PHP вплоть до 7.2.x по состоянию на исходный материал.

Предварительные условия

  • Сервер с Fedora (в примерах использована Fedora 29/30).
  • Нерутовый пользователь с правами sudo.
  • В инструкции используется домен example.com — замените его на ваш домен в конфигурациях и командах.

Начальная подготовка системы

Проверка версии Fedora:

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

Установка часового пояса:

timedatectl list-timezones  
sudo timedatectl set-timezone 'Region/City'  

Обновление пакетов:

sudo dnf upgrade -y

Установка базовых утилит:

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

Шаг 1 — Установка 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 (если нужно для плагинов).

Шаг 2 — Установка IonCube Loader (опционально)

IonCube — опциональный загрузчик для зашифрованных модулей/тем. Shopware может работать и без него, но некоторые расширения могут требовать его наличия.

Скачивание:

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 7.2):

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

Подключите загрузчик в php.ini (вставьте строку ниже секции [PHP]):

sudo vim /etc/php.ini

Добавьте:

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

Перезапустите PHP-FPM:

sudo systemctl restart php-fpm.service

Шаг 3 — Установка MariaDB и создание базы данных

Установка MariaDB:

sudo dnf install -y mariadb-server

Проверка версии:

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

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

sudo systemctl start mariadb.service  
sudo systemctl enable mariadb.service

Усиление безопасности 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

Подключитесь в MySQL как root и создайте базу и пользователя для Shopware:

sudo mysql -u root -p  
# Enter password  

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

Замените dbname, username и password на ваши значения.

Шаг 4 — Установка acme.sh и получение сертификата Let’s Encrypt (опционально)

HTTPS не обязателен, но настоятельно рекомендуется. В примере используется acme.sh — независимый shell-клиент для Let’s Encrypt.

Установка acme.sh:

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

Проверка версии:

acme.sh --version  
# v2.8.1

Получение сертификатов RSA и ECDSA для домена example.com:

# 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
  • 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"

acme.sh будет автоматически обновлять сертификаты по расписанию.

Завершите сессию root:

exit

Шаг 5 — Установка и конфигурация NGINX

Установка NGINX:

sudo dnf install -y nginx

Проверка версии:

nginx -v  
# nginx version: nginx/1.14.2

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

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

Создайте конфигурацию для Shopware (файл /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;
    }
}

Проверьте конфигурацию на ошибки:

sudo nginx -t

Перезагрузите NGINX:

sudo systemctl reload nginx.service

Шаг 6 — Установка Shopware

Создайте корневую директорию сайта:

sudo mkdir -p /var/www/shopware

Передайте права своему пользователю (замените {your_user}):

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

Перейдите в директорию и скачайте последнюю раздачу Shopware (в примере конкретная версия 5.5.8):

cd /var/www/shopware

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

NOTE: обновите URL загрузки, если есть более новая версия.

Измените владельца на nginx для корректной работы процессов веб-сервера:

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

Отредактируйте конфигурацию PHP-FPM (/etc/php-fpm.d/www.conf) и установите user/group в nginx, если нужно:

sudo vim /etc/php-fpm.d/www.conf

Убедитесь, что указано:

user = nginx  
group = nginx

Создайте каталог для PHP-сессий и назначьте права:

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

В php.ini при необходимости увеличьте ресурсы:

  • memory_limit = 256M
  • upload_max_filesize = 6M
  • allow_url_fopen = On

В Linux-путь к php.ini обычно /etc/php.ini. После правок перезагрузите PHP-FPM:

sudo systemctl reload php-fpm.service

Откройте в браузере ваш домен/IP и пройдите установочный мастер Shopware. Бэкенд доступен по адресу /backend — например: http://example.com/backend

Шаг 7 — Завершение установки в веб-мастере

Мастер установки Shopware: выбор языка

Следуйте шагам инсталлятора: проверьте соответствие системным требованиям, примите лицензию, введите параметры базы данных, дождитесь создания таблиц и завершения инсталляции.

Проверка системных требований выполнена

Принятие лицензионного соглашения

Настройки базы данных Shopware

Установка таблиц в базе данных

Инициализация базы данных успешна

Выбор лицензии

Базовые настройки магазина

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

После успешной установки админ-панель доступна по /backend:

Вход в админ-панель Shopware

Поздравляем — Shopware установлен.

Важные рекомендации и улучшения (безопасность и эксплуатация)

  • Всегда используйте HTTPS в продакшн-среде.
  • Ограничьте доступ к административной панели через firewall или IP-ограничение, если это возможно.
  • Регулярно обновляйте PHP, OS и Shopware до поддерживаемых версий.
  • Делайте бекапы базы данных и файлов (ежедневно/по расписанию). Храните бекапы вне сервера.
  • Настройте мониторинг свободного диска, использования памяти и доступности веб-сервиса.

Частые ошибки и их решение

  1. Проблема: страница установки зависает или возвращает 500.

    • Проверка: смотрите логи NGINX (/var/log/nginx/error.log) и PHP-FPM (/var/log/php-fpm/www-error.log или systemd-journal).
    • Частая причина: права доступа к /var/www/shopware или неверный пользователь в php-fpm.
  2. Проблема: PHP не видит расширения или missing functions.

    • Решение: убедитесь, что установлены необходимые расширения и перезапущен php-fpm; проверьте php -m.
  3. Проблема: соединение с базой данных не устанавливается.

    • Проверьте правильность хоста, имени пользователя и пароля; проверьте что MariaDB слушает локально и доступна.
  4. Проблема: TLS не выдан для домена.

    • Убедитесь, что DNS A/AAAA записи указывают на текущий сервер и порт 80/443 доступны; временно остановите NGINX если используете acme.sh с –standalone.

Альтернативные варианты и расширения подхода

  • Веб-сервер: вместо NGINX можно использовать Apache 2.4 с модулем mod_rewrite и PHP-FPM.
  • Контейнеризация: развертывание через Docker/Kubernetes позволяет изолировать зависимости и упростить масштабирование.
  • Менеджеры пакетов: для PHP-инструментов используйте Composer для установки расширений/плагинов Shopware.

Руководство действий (SOP) — краткий чеклист для установки

  1. Обновить систему: sudo dnf upgrade -y
  2. Установить PHP и расширения.
  3. Запустить и включить php-fpm.
  4. (Опционально) Установить IonCube.
  5. Установить MariaDB и выполнить mysql_secure_installation.
  6. Создать базу данных и пользователя.
  7. (Опционально) Установить acme.sh и получить сертификат.
  8. Установить и настроить NGINX, пройти тест nginx -t.
  9. Скопировать файлы Shopware в /var/www/shopware и настроить права.
  10. Отредактировать php.ini, задать session path, reload php-fpm.
  11. Открыть браузер и завершить установку через /backend.
  12. Проверить логи и функциональность магазина.

Ролевые контрольные списки

Администратор сервера:

  • Проверить OS и репозитории.
  • Настроить брандмауэр и SELinux (если используется).
  • Настроить резервное копирование.

Разработчик:

  • Проверить соответствие версий PHP и расширений.
  • Убедиться, что права на файлы позволяют развёртывание кода.
  • Настроить рабочие среды (dev/staging/prod).

Оператор/DevOps:

  • Настроить мониторинг, уведомления, автоматические обновления сертификатов.
  • Настроить CI/CD для обновления Shopware и плагинов.

Ментальные модели и рекомендации

  • «Меньше привилегий»: давать минимально необходимые права процессам и пользователям (nginx, php-fpm).
  • «Изолируй и обновляй»: держите базу данных, веб-сервер и PHP в управляемых контейнерах или отдельных службах, чтобы обновлять части независимо.
  • «Шаг за шагом»: выполняйте установку и проверку по пунктам, не пропуская проверку логов после каждого критического шага.

Фактбокс — ключевые числа и директории

  • Минимум: 4 ГБ свободного места на диске.
  • Рекомендуемая версия PHP: 7.1 и выше.
  • Путь документа: /var/www/shopware
  • PHP-FPM socket по умолчанию: unix:/run/php-fpm/www.sock
  • Каталог сертификатов (по примеру): /etc/letsencrypt

Критерии приёмки

  • Веб-сайт доступен по HTTPS (если настроен).
  • Админ-панель /backend открывается, вход возможен.
  • База данных создана и таблицы импортированы без ошибок.
  • Нету критических ошибок в логах NGINX и PHP-FPM.

Короткий план отката (rollback)

  1. Откатить изменения в NGINX: восстановить предыдущий конфиг и выполнить sudo systemctl reload nginx.
  2. Восстановить дамп базы данных, если была повреждена схема.
  3. Восстановить файлы сайта из бэкапа.
  4. Проверить права и перезапустить сервисы (php-fpm, nginx).

Краткий словарь терминов

  • PHP-FPM — менеджер процессов PHP (fastcgi) для обработки PHP-запросов.
  • acme.sh — shell-клиент для автоматического получения сертификатов от Let’s Encrypt.
  • IonCube — загрузчик для зашифрованных PHP-расширений.

Полезные ссылки

Итог

Установка Shopware на Fedora с NGINX — это набор повторяемых шагов: подготовка ОС, установка PHP и расширений, настройка СУБД, настройка веб-сервера и использование веб-инсталлятора. Выполнение рекомендаций по безопасности, резервному копированию и мониторингу обеспечит стабильную работу магазина.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

APC Index Mismatch — как исправить BSOD на Windows
Техподдержка

APC Index Mismatch — как исправить BSOD на Windows

Доступ к Android с разбитым экраном
Android.

Доступ к Android с разбитым экраном

Сброс Samsung при заблокированном телефоне
Мобильные устройства

Сброс Samsung при заблокированном телефоне

Как разогнать монитор через NVIDIA Control Panel
Гайды

Как разогнать монитор через NVIDIA Control Panel

APC_INDEX_MISMATCH: как исправить BSOD в Windows
Инструкции

APC_INDEX_MISMATCH: как исправить BSOD в Windows

Как исправить ошибку Blink 1011
Техническая поддержка

Как исправить ошибку Blink 1011