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

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

5 min read Электронная коммерция Обновлено 28 Nov 2025
Shopware CE на Ubuntu 22.04 — Nginx и Let's Encrypt
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.
  • Резервная копия данных перед изменениями в продакшне.

Основные шаги (обзор)

  1. Установка Nginx и MariaDB.
  2. Установка PHP 7.2 + расширений и IonCube (если требуется).
  3. Настройка базы данных для Shopware.
  4. Загрузка Shopware в /var/www/html/shopware и выставление прав.
  5. Конфигурация виртуального хоста Nginx.
  6. Проход веб‑установщика Shopware.
  7. Установка 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-fpm

IonCube (если требуется)

Некоторые дистрибутивы 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 (замените домен). Веб‑инсталлятор проведёт вас по шагам: язык → проверка зависимостей → соглашение → параметры БД → установка.

Изображение установки: Экран установки Shopware: выбор языка и шаги установки

Выберите язык и следуйте подсказкам. На этапе проверки убедитесь, что все зависимости удовлетворены. Затем введите параметры базы данных и админа. После успешной установки вы попадёте в панель администратора.

Скриншоты интерфейса установки и панели администратора:

(Интерфейс: проверка зависимостей перед установкой)

(Интерфейс: подтверждение лицензионного соглашения)

(Интерфейс: ввод параметров базы данных)

(Установка завершена: успешный экран)

(Переход к административной панели)

(Главная административная панель Shopware)

(Настройки магазина: ввод данных администратора и контактной информации)

(Прикладной вид: дашборд Shopware после входа)

(Вход в административную часть: экран логина)

(Рабочая область: пример интерфейса магазина после настройки)

Защита сайта с помощью 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 с сохранением данных.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

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

Как исправить ошибку Windows 0x8007045d
Windows

Как исправить ошибку Windows 0x8007045d

Как удалить пароль из PDF на Windows и macOS
Инструкции

Как удалить пароль из PDF на Windows и macOS

Исправление ошибки 0x80004005 в Windows
Windows

Исправление ошибки 0x80004005 в Windows

Запрет установки программ в Windows 11
Безопасность

Запрет установки программ в Windows 11

Wi‑Fi синхронизация iPhone с Mac
How-to

Wi‑Fi синхронизация iPhone с Mac

JUnit: @BeforeAll, @BeforeEach, @AfterAll, @AfterEach
Тестирование

JUnit: @BeforeAll, @BeforeEach, @AfterAll, @AfterEach