Установка Shopware CE на Ubuntu 20.04 с Nginx и Let's Encrypt

Введение
Shopware CE — бесплатная открытая платформа для eCommerce, написанная с использованием Symfony и Vue.js. Это современный стек технологий и удобная альтернатива таким системам, как Magento. Shopware гибкий и масштабируемый: удобная админка, управление ценами, темы, шаблоны писем и базовая аналитика.
В этом руководстве показаны шаги для развёртывания Shopware CE на Ubuntu 20.04 с Nginx и Let’s Encrypt. Упор сделан на воспроизводимость, безопасность и практические заметки для продакшен-сервера.
Важно: здесь описана установка для PHP 7.2 — Shopware 6 исторически поддерживал 7.2–7.3. Если вы используете более свежие версии Shopware, проверьте требования к PHP в официальной документации.
Основные варианты намерения статьи
Primary intent: установка Shopware CE на Ubuntu 20.04 Related intents: установка Shopware Nginx, Shopware Let’s Encrypt, Shopware PHP 7.2, развертывание Shopware, настройка MariaDB для Shopware
Требования
- Сервер с Ubuntu 20.04 и минимум 4 ГБ ОЗУ. 4 ГБ — рекомендованный минимум для комфортной сборки зависимостей. Для больших магазинов планируйте больше памяти.
- Домен, указывающий на IP сервера (A-запись).
- Доступ root или пользователь с правами sudo и установленный пароль root, если требуется.
Шаг 1 — Установка Nginx и MariaDB
Установим Nginx и MariaDB:
apt-get install nginx mariadb-server -yЗапустите и включите сервисы при загрузке:
systemctl start nginx
systemctl start mariadb
systemctl enable nginx
systemctl enable mariadbСовет: после установки MariaDB запустите mysql_secure_installation (далее) для базовой защиты сервера баз данных.
Шаг 2 — Установка PHP и необходимых компонентов
Shopware 6 требует PHP 7.2–7.3. В примере используется PHP 7.2.
Добавьте PPA для PHP и установите пакеты:
apt-get install software-properties-common -y
add-apt-repository ppa:ondrej/php
apt-get update
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 для FPM и настройте базовые значения:
nano /etc/php/7.2/fpm/php.iniИзмените или добавьте:
memory_limit = 512M
upload_max_filesize = 20M
max_execution_time = 300Сохраните и закройте файл.
IonCube
Если ваши расширения или плагины требуют 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Скопируйте соответствующий .so-файл в директорию расширений (путь зависит от вывода предыдущей команды). В примере команда была:
cp ioncube/ioncube_loader_lin_7.2.so /usr/lib/php/20180731/Добавьте в php.ini:
zend_extension = /usr/lib/php/20180731/ioncube_loader_lin_7.2.soПерезапустите FPM:
systemctl restart php7.2-fpmПримечание: пути к каталогам расширений зависят от версии PHP и build-параметров дистрибутива.
Шаг 3 — Настройка MariaDB
Защитите установку и задайте пароль root:
mysql_secure_installationОтвечайте на вопросы, как предложено в интерактивном скрипте (рекомендуется согласиться на все защитные операции).
Создайте базу данных и пользователя для Shopware:
mysql -u root -p
MariaDB [(none)]> CREATE DATABASE shopwaredb;
MariaDB [(none)]> GRANT ALL ON shopwaredb.* TO 'shopware'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Замените ‘password’ на надёжный пароль. В продакшене используйте отдельного пользователя с минимально необходимыми правами.
Шаг 4 — Установка Composer
Composer — менеджер зависимостей PHP. Установите глобально:
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composerПроверьте версию:
composer --versionОжидаемый вывод: Composer version X — фактическая версия будет отличаться.
Шаг 5 — Загрузка Shopware
Создайте каталог в веб-корне и загрузите архив установки (в примере ссылка на конкретную версию):
mkdir -p /var/www/html/shopware
cd /var/www/html/shopware
wget https://www.shopware.com/en/Download/redirect/version/sw6/file/install_6.2.2_1592398977.zip
unzip install_6.2.2_1592398977.zipУстановите PHP-зависимости через Composer:
composer installУстановите владельца и права:
chown -R www-data:www-data /var/www/html/shopware
chmod -R 755 /var/www/html/shopwareВажно: в среде с CI/CD или при использовании контейнеров права и владелец могут отличаться.
Шаг 6 — Конфигурация Nginx
Создайте файл виртуального хоста:
nano /etc/nginx/sites-available/shopware.confДобавьте конфигурацию (замените server_name на ваш домен):
server {
listen 80;
index index.php index.html;
server_name shopware.linuxbuz.com;
root /var/www/html/shopware/public;
location /recovery/install {
index index.php;
try_files $uri /recovery/install/index.php$is_args$args;
}
location /recovery/update/ {
location /recovery/update/assets {
}
if (!-e $request_filename){
rewrite . /recovery/update/index.php last;
}
}
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi.conf;
fastcgi_param HTTP_PROXY "";
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
client_max_body_size 24M;
client_body_buffer_size 128k;
fastcgi_pass unix:/run/php/php7.2-fpm.sock;
http2_push_preload on;
}
}Включите сайт и проверьте конфигурацию:
ln -s /etc/nginx/sites-available/shopware.conf /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginxЕсли вы используете ufw, разрешите HTTP/HTTPS трафик:
ufw allow 'Nginx Full'Шаг 7 — Запуск мастера установки Shopware
Откройте браузер и перейдите по адресу http://shopware.linuxbuz.com (замените на ваш домен). Должен появиться веб-мастер установки.

Пошагово выберите язык, проверьте системные требования, согласитесь с условиями и укажите данные для подключения к базе.



После успешной установки вы увидите страницу подтверждения:

Далее заполните настройки магазина: название, e‑mail, данные администратора и т. п.


После завершения установки вы попадёте в дашборд Shopware:

Далее мастер предложит импорт демонстрационных данных, настройку почты, платёжные интеграции и подбор рекомендуемых плагинов.









Шаг 8 — Защита сайта с помощью Let’s Encrypt
Установите Certbot и плагин для Nginx:
apt-get install certbot python3-certbot-nginx -yЗапустите автонастройку SSL (замените домен на ваш):
certbot --nginx -d shopware.linuxbuz.comСледуйте подсказкам: введите email, согласитесь с условиями и выберите вариант перенаправления HTTP на HTTPS (рекомендуется 2 — Redirect).
Certbot автоматически обновит конфигурацию Nginx и установит сертификаты в /etc/letsencrypt/live/
Совет: проверьте автоматическое продление сертификата
certbot renew --dry-runДобавьте в cron или systemd-timer, если нужно, но обычно пакет сам устанавливает systemd-таймер.
Отладка и часто встречаемые ошибки
- 502 Bad Gateway после настройки Nginx: проверьте, что php-fpm запущен и путь сокета в fastcgi_pass соответствует версии PHP (например, /run/php/php7.2-fpm.sock).
- Ошибки прав доступа: проверьте владельца файлов (www-data) и права каталогов var и public.
- Ошибки Composer: запустите composer install из каталога проекта, убедитесь, что переменные окружения и php-расширения установлены.
- Невозможность получить сертификат Let’s Encrypt: убедитесь, что A-запись домена указывает на сервер и порт 80 открыт.
Important: для публичного сайта НЕ оставляйте тестовые пароли и используйте надёжные значения для админов и БД.
Рекомендации по безопасности и эксплуатации
- Регулярно обновляйте систему пакетов и PHP-расширения.
- В production отключите отображение ошибок PHP (display_errors = Off).
- Настройте бэкапы базы и файлов (например, еженощный дамп mysqldump и rsync архивов).
- Используйте мониторинг (uptime, загрузка, свободная память) и алерты для критических сервисов.
- Ограничьте доступ к /admin панелям по IP или через VPN, если возможно.
Автоматизация и резервное копирование
Минимальный SOP для бэкапа:
- Скрипт дампа БД:
mysqldump -u root -p'your_root_password' shopwaredb > /backup/shopwaredb_$(date +%F).sql- Архив сайта:
tar -czf /backup/shopware_files_$(date +%F).tar.gz /var/www/html/shopware- Перенос резервов на удалённое хранилище (S3, rsync, FTP) и проверка целостности.
Чеклисты по ролям
Администратор сервера:
- Настроить firewall и открыть только нужные порты.
- Настроить SSL и автопродление.
- Настроить резервное копирование и мониторинг.
Dev/Ops:
- Автоматизировать деплой через CI/CD.
- Контролировать зависимости через composer.lock.
- Настроить staging окружение.
Маркетинг/Контент менеджер:
- Импорт данных демо/каталога.
- Проверить e‑mail отправку и шаблоны писем.
Критерии приёмки
- Сайт доступен по HTTPS и перенаправляет HTTP на HTTPS.
- Мастер установки завершился без ошибок.
- Вход в админ-панель работает, созданы admin-пользователь и магазин.
- Создана резервная копия БД и файлов, успешно восстановленная в тестовой среде.
Инцидентный план и откат
Если при обновлении или установке возникает критическая ошибка:
- Откат к последней рабочей версии файлов из резервной копии.
- Восстановление дампа БД.
- Детальный лог (nginx, php-fpm, shopware var/log) для анализа.
- Если проблема связана с плагином — отключите плагин и повторите проверку.
Тесты и приёмка
Минимальные проверки после установки:
- Открыть главную страницу магазина по HTTPS.
- Войти в админку и создать тестовый товар.
- Оформить тестовый заказ (режим sandbox для платёжных систем).
- Проверить отправку писем (SMTP или локальный агент).
Миграция и альтернативы
- Если вы мигрируете с Magento/PrestaShop: подготовьте план миграции данных (товары, категории, клиенты, заказы). Используйте ETL-скрипты или платные миграторы.
- Альтернатива: использовать контейнеры (Docker) для изоляции окружения и воспроизводимости.
Короткое объявление для соцсетей
Установили Shopware CE на Ubuntu 20.04: Nginx, MariaDB, PHP 7.2 + Let’s Encrypt. Готово к настройке магазина и интеграциям. Полная инструкция с чеклистами и планом отката — в статье.
Короткая методология развёртывания (3 шага)
- Подготовка ОС и базовых сервисов (Nginx, MariaDB, PHP).
- Установка Shopware через Composer и запуск веб-мастера.
- Защита HTTPS и проверка стабильности, бэкапы.
Глоссарий (1‑строчные определения)
- Shopware CE: бесплатная версия платформы электронной коммерции.
- Composer: менеджер зависимостей PHP.
- Certbot: клиент Let’s Encrypt для автоматического получения SSL.
- php-fpm: процессный менеджер PHP для Nginx.
Заключение
Вы успешно установили Shopware CE, настроили веб‑сервер и защитили сайт HTTPS-сертификатом. После установки уделите время: настройке резервного копирования, обновлениям и мониторингу. Если нужно, помогу адаптировать инструкцию под ваш домен, версию PHP или сценарий CI/CD.
Короткие заметки
- Notes: проверьте версию Shopware и совместимость с PHP перед началом. Для production используйте отдельную среду для тестирования обновлений.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента