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

О чём эта инструкция
Этот пошаговый материал показывает установку 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.zipNOTE: обновите 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 — Завершение установки в веб-мастере

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








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

Поздравляем — Shopware установлен.
Важные рекомендации и улучшения (безопасность и эксплуатация)
- Всегда используйте HTTPS в продакшн-среде.
- Ограничьте доступ к административной панели через firewall или IP-ограничение, если это возможно.
- Регулярно обновляйте PHP, OS и Shopware до поддерживаемых версий.
- Делайте бекапы базы данных и файлов (ежедневно/по расписанию). Храните бекапы вне сервера.
- Настройте мониторинг свободного диска, использования памяти и доступности веб-сервиса.
Частые ошибки и их решение
Проблема: страница установки зависает или возвращает 500.
- Проверка: смотрите логи NGINX (/var/log/nginx/error.log) и PHP-FPM (/var/log/php-fpm/www-error.log или systemd-journal).
- Частая причина: права доступа к /var/www/shopware или неверный пользователь в php-fpm.
Проблема: PHP не видит расширения или missing functions.
- Решение: убедитесь, что установлены необходимые расширения и перезапущен php-fpm; проверьте php -m.
Проблема: соединение с базой данных не устанавливается.
- Проверьте правильность хоста, имени пользователя и пароля; проверьте что MariaDB слушает локально и доступна.
Проблема: TLS не выдан для домена.
- Убедитесь, что DNS A/AAAA записи указывают на текущий сервер и порт 80/443 доступны; временно остановите NGINX если используете acme.sh с –standalone.
Альтернативные варианты и расширения подхода
- Веб-сервер: вместо NGINX можно использовать Apache 2.4 с модулем mod_rewrite и PHP-FPM.
- Контейнеризация: развертывание через Docker/Kubernetes позволяет изолировать зависимости и упростить масштабирование.
- Менеджеры пакетов: для PHP-инструментов используйте Composer для установки расширений/плагинов Shopware.
Руководство действий (SOP) — краткий чеклист для установки
- Обновить систему: sudo dnf upgrade -y
- Установить PHP и расширения.
- Запустить и включить php-fpm.
- (Опционально) Установить IonCube.
- Установить MariaDB и выполнить mysql_secure_installation.
- Создать базу данных и пользователя.
- (Опционально) Установить acme.sh и получить сертификат.
- Установить и настроить NGINX, пройти тест nginx -t.
- Скопировать файлы Shopware в /var/www/shopware и настроить права.
- Отредактировать php.ini, задать session path, reload php-fpm.
- Открыть браузер и завершить установку через /backend.
- Проверить логи и функциональность магазина.
Ролевые контрольные списки
Администратор сервера:
- Проверить 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)
- Откатить изменения в NGINX: восстановить предыдущий конфиг и выполнить sudo systemctl reload nginx.
- Восстановить дамп базы данных, если была повреждена схема.
- Восстановить файлы сайта из бэкапа.
- Проверить права и перезапустить сервисы (php-fpm, nginx).
Краткий словарь терминов
- PHP-FPM — менеджер процессов PHP (fastcgi) для обработки PHP-запросов.
- acme.sh — shell-клиент для автоматического получения сертификатов от Let’s Encrypt.
- IonCube — загрузчик для зашифрованных PHP-расширений.
Полезные ссылки
Итог
Установка Shopware на Fedora с NGINX — это набор повторяемых шагов: подготовка ОС, установка PHP и расширений, настройка СУБД, настройка веб-сервера и использование веб-инсталлятора. Выполнение рекомендаций по безопасности, резервному копированию и мониторингу обеспечит стабильную работу магазина.
Похожие материалы
APC Index Mismatch — как исправить BSOD на Windows
Доступ к Android с разбитым экраном
Сброс Samsung при заблокированном телефоне
Как разогнать монитор через NVIDIA Control Panel
APC_INDEX_MISMATCH: как исправить BSOD в Windows