Установка Shopware CE на Ubuntu 22.04 с Nginx и Let's Encrypt
Краткое описание
Shopware Community Edition — бесплатная и открытая платформа для интернет-магазинов. Основана на Symfony и Vue.js. Подходит как альтернатива Magento для малого и среднего бизнеса. В этом руководстве описана установка на Ubuntu 22.04 с Nginx и автоматической установкой SSL через Let’s Encrypt.
Важно: описание ориентировано на Shopware 5.x/6.x (в исходном материале использовалась PHP 7.2). Проверьте совместимость версии Shopware с PHP перед установкой.
Что понадобится
- Сервер с Ubuntu 22.04 и минимум 4 ГБ ОЗУ.
- Домен, указывающий на IP сервера (A-запись).
- Доступ root или пользователь с sudo.
- Резервная копия данных перед изменениями в продакшне.
Основные шаги (обзор)
- Установка Nginx и MariaDB.
- Установка PHP 7.2 + расширений и IonCube (если требуется).
- Настройка базы данных для Shopware.
- Загрузка Shopware в /var/www/html/shopware и выставление прав.
- Конфигурация виртуального хоста Nginx.
- Проход веб‑установщика Shopware.
- Установка Let’s Encrypt (certbot) и включение HTTPS.
Подготовка сервера
Обновите пакеты и установите базовые утилиты:
apt-get update && apt-get upgrade -y
apt-get install wget unzip git curl nano -yУстановка Nginx и MariaDB
Установите веб-сервер и базу данных:
apt-get install nginx mariadb-server -yЗапустите и включите сервисы:
systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadbПроверка статуса Nginx:
systemctl status nginxУстановка PHP и расширений
Shopware в исходном руководстве использовал PHP 7.2. Если ваша версия Shopware требует более новой версии PHP, замените версии в командах соответственно.
Добавьте репозиторий с пакетами PHP (пример для Ubuntu):
apt-get install software-properties-common -y
add-apt-repository ppa:ondrej/php
apt-get updateУстановите PHP и необходимые расширения:
apt-get install php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-mysql php7.2-curl php7.2-json php7.2-zip php7.2-gd php7.2-xml php7.2-mbstring php7.2-intl php7.2-opcache git unzip socat curl bash-completion -yОтредактируйте файл php.ini для PHP-FPM (улучшенные значения для Shopware):
nano /etc/php/7.2/fpm/php.iniИзмените или добавьте:
memory_limit = 512M
upload_max_filesize = 20M
max_execution_time = 300Перезапустите PHP-FPM после изменений:
systemctl restart php7.2-fpmIonCube (если требуется)
Некоторые дистрибутивы Shopware или плагины могут требовать IonCube. Установите его так:
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
tar xfz ioncube_loaders_lin_x86-64.tar.gz
php -i | grep extension_dir
cp ioncube/ioncube_loader_lin_7.2.so /usr/lib/php/20170718/Добавьте в /etc/php/7.2/fpm/php.ini:
zend_extension = /usr/lib/php/20170718/ioncube_loader_lin_7.2.soПерезапустите:
systemctl restart php7.2-fpmПримечание: путь extension_dir может отличаться. Команда php -i | grep extension_dir покажет актуальный путь.
Настройка MariaDB
Запустите скрипт безопасности MariaDB и установите root‑пароль:
mysql_secure_installationОтветьте утилите согласно подсказкам (рекомендуется убрать анонимных пользователей, запретить удалённый вход root и удалить тестовую БД).
Создайте БД и пользователя для Shopware:
mysql -u root -p
CREATE DATABASE shopwaredb;
GRANT ALL ON shopwaredb.* TO 'shopware'@'localhost' IDENTIFIED BY 'password';
flush privileges;
exit;Замените ‘password’ на надёжный пароль.
Загрузка Shopware
Создайте папку для проекта и загрузите архив Shopware. В исходном примере использовался прямой wget на конкретную версию.
mkdir -p /var/www/html/shopware
cd /var/www/html/shopware
wget http://releases.s3.shopware.com.s3.amazonaws.com/install_5.4.5_6847c0845f0f97230aa05c7294fa726a96dda3ff.zip?_ga=2.133696968.774684214.1529926951-1771999509.1528830594 -O shopware.zip
unzip shopware.zipУстановите владельца и права:
chown -R www-data:www-data /var/www/html/shopware
chmod -R 755 /var/www/html/shopwareВажно: для безопасности не давайте 777 прав. Пользователь веб‑сервера (обычно www-data) должен владеть файлами.
Конфигурация Nginx
Создайте виртуальный хост:
nano /etc/nginx/sites-available/shopware.confДобавьте конфигурацию (проверьте server_name и пути):
server {
listen 80;
server_name shopware.example.com; # Замените на ваш домен
root /var/www/html/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 snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; # Проверьте сокет PHP-FPM
}
}Активируйте сайт и проверьте конфигурацию:
ln -s /etc/nginx/sites-available/shopware.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginxЕсли возникнут ошибки, проверьте /var/log/nginx/error.log и вывод nginx -t.
Прохождение веб‑установщика Shopware
Откройте браузер и перейдите по адресу http://shopware.example.com (замените домен). Веб‑инсталлятор проведёт вас по шагам: язык → проверка зависимостей → соглашение → параметры БД → установка.
Изображение установки: 
Выберите язык и следуйте подсказкам. На этапе проверки убедитесь, что все зависимости удовлетворены. Затем введите параметры базы данных и админа. После успешной установки вы попадёте в панель администратора.
Скриншоты интерфейса установки и панели администратора:










Защита сайта с помощью Let’s Encrypt
Установите certbot и плагин для Nginx:
apt-get install certbot python3-certbot-nginx -yЗапустите certbot для вашего домена:
certbot --nginx -d shopware.example.comПримеры взаимодействия с certbot показаны ниже. Вы укажете email, соглашение и вариант перенаправления с HTTP на HTTPS.
Важно: certbot автоматически изменит конфигурацию Nginx, если вы выберете перенаправление. После установки сертификата проверьте автообновление:
systemctl list-timers | grep certbot
certbot renew --dry-runЧастые ошибки и решения
- Неправильный путь fastcgi_pass: убедитесь, что сокет PHP-FPM совпадает с версией PHP (php7.2-fpm.sock). Если установлен другой PHP, поменяйте путь.
- Ошибки прав доступа: проверьте, что www-data владеет директорией и подпапками.
- База данных недоступна: убедитесь, что MariaDB запущена и пользователь имеет нужные привилегии.
- Certbot не может подтвердить домен: проверьте DNS A-запись и доступ по HTTP на порт 80.
Рекомендации по безопасности
- Включите UFW и разрешите только нужные порты:
ufw allow OpenSSH
ufw allow 'Nginx Full'
ufw enable- Установите Fail2Ban для защиты SSH и Nginx.
- Ограничьте доступ к панели администратора по IP через Nginx, если возможно.
- Регулярно обновляйте систему и компоненты Shopware.
Резервное копирование и откат
Резервируйте директорию сайта и базу данных перед обновлениями:
# дамп БД
mysqldump -u root -p shopwaredb > /root/shopwaredb_$(date +%F).sql
# архив файлов
tar czf /root/shopware_files_$(date +%F).tar.gz /var/www/html/shopwareОткат: восстановите дамп БД и распакуйте архив в /var/www/html/shopware, затем проверьте права и перезапустите сервисы.
Чеклист приёмки (роль: системный администратор)
- DNS A-запись указывает на сервер.
- Nginx запущен и отвечает на HTTP.
- PHP-FPM активен и отвечает через сокет/порт.
- MariaDB создана БД и пользователь с правами.
- Shopware установился без ошибок через веб‑установщик.
- HTTPS выдаёт валидный сертификат и редирект с HTTP работает.
- Бэкап создан и проверен на восстановление.
Критерии приёмки
- Сайт доступен по HTTPS и проходит базовую страницу магазина.
- Админка Shopware доступна, и можно зайти под учётной записью администратора.
- Базовые операции (создание товара, оформление заказа в тестовом режиме) выполняются без ошибок.
- Certbot настроен на автоматическое продление сертификатов.
Шорт‑шит команд (сводка команд)
# Установка пакетов
apt-get install nginx mariadb-server php7.2-fpm php7.2-mysql unzip git -y
# Создать БД
mysql -u root -p -e "CREATE DATABASE shopwaredb; GRANT ALL ON shopwaredb.* TO 'shopware'@'localhost' IDENTIFIED BY 'secure_password'; FLUSH PRIVILEGES;"
# Настроить права
chown -R www-data:www-data /var/www/html/shopware
chmod -R 755 /var/www/html/shopware
# Certbot
certbot --nginx -d your.domain.tldСоветы по миграции и совместимости
- При миграции с Magento или другой платформы используйте экспорт/импорт товаров и клиентов. Shopware имеет плагины для миграции.
- Обратите внимание на версии PHP и требуемые расширения: устаревшие версии PHP несут риски безопасности.
- Для высоконагруженных магазинов планируйте отдельный сервер базы данных и кеширование (Redis, Varnish).
Краткий глоссарий (1 строка на термин)
- PHP-FPM: процессный менеджер для PHP, обслуживает PHP запросы через сокет/порт.
- Nginx: веб‑сервер и реверс‑прокси.
- Certbot: клиент для управления сертификатами Let’s Encrypt.
- MariaDB: форк MySQL, сервер баз данных.
- IonCube: загрузчик защищённых PHP расширений/плагинов.
Отказ и альтернативы
- Если вы не хотите содержать сервер самостоятельно, рассмотрите управляемый хостинг Shopware Cloud.
- Для более новых версий Shopware используйте рекомендованную версию PHP и официальную документацию для конфигурации.
Резюме
Вы установили Shopware CE на Ubuntu 22.04, настроили Nginx, PHP-FPM и MariaDB, запустили веб‑инсталлятор и защитили сайт сертификатом Let’s Encrypt. Используйте чеклист приёмки и процедуры резервного копирования перед выводом в продакшн.
Если нужно, могу предоставить:
- готовый файл конфигурации Nginx с HTTPS и заголовками безопасности;
- пример systemd unit для задач Cron/наладок;
- инструкцию по обновлению Shopware с сохранением данных.
Похожие материалы
Как исправить ошибку Windows 0x8007045d
Как удалить пароль из PDF на Windows и macOS
Исправление ошибки 0x80004005 в Windows
Запрет установки программ в Windows 11
Wi‑Fi синхронизация iPhone с Mac