Установка Magento 2 на Debian 11 — пошаговое руководство

Обзор
Magento — это бесплатная и открытая платформа электронной коммерции на PHP, подходящая для малого, среднего и крупного бизнеса. Она позволяет запустить полноценный интернет-магазин с корзиной и админкой без глубоких знаний программирования. В этом руководстве описаны шаги установки Magento 2 на сервер с Debian 11.
Ключевые понятия в одну строку:
- Magento 2 — платформа e‑commerce на PHP; требует веб-сервера, PHP-расширений и СУБД MySQL/MariaDB.
- Composer — менеджер зависимостей PHP.
- Elasticsearch — поиск, необязателен, но часто используется; здесь мы отключаем его модуль для упрощённой установки.
Важно: руководство предполагает, что у вас есть прямой доступ к серверу с правами root и выделенный домен, указывающий на сервер.
Требования
- Сервер с Debian 11.
- Доменное имя, указывающее на IP сервера.
- Настроен пароль root или доступ по sudo.
- Рекомендуется минимум 2–4 ГБ ОЗУ для комфортной установки и компиляции.
Установка Apache, PHP и необходимых расширений
Установите Apache, PHP и расширения одним набором команд (оставьте команды без изменений):
apt-get install apache2 php libapache2-mod-php php-common php-gmp php-curl php-soap php-bcmath php-intl php-mbstring php-xmlrpc php-mysql php-gd php-xml php-cli php-zip -yОтредактируйте php.ini для Apache и замените настройки на рекомендуемые:
nano /etc/php/7.4/apache2/php.iniИзмените значения:
file_uploads = On
allow_url_fopen = On
short_open_tag = On
memory_limit = 512M
upload_max_filesize = 128M
max_execution_time = 3600Сохраните и перезапустите Apache:
systemctl restart apache2Совет: при ограниченной памяти уменьшите memory_limit до 256M, но будьте готовы к более долгой компиляции.
Установка и настройка MySQL Server 8
Magento 2 официально поддерживает MySQL 8. В репозитории Debian 11 по умолчанию идёт MariaDB 10.5, которая может быть несовместима. Поэтому мы подключаем официальный репозиторий MySQL и устанавливаем MySQL 8.
Скачайте пакет конфигурации репозитория MySQL:
wget https://repo.mysql.com//mysql-apt-config_0.8.18-1_all.debУстановите пакет:
apt install ./mysql-apt-config_0.8.18-1_all.deb -yПри установке выберите MySQL Server 8 в диалоге конфигурации:

Обновите репозитории и установите MySQL Server:
apt-get update -y
apt-get install mysql-server -yПодключитесь к MySQL и создайте базу и пользователя для Magento:
mysql -u root -pВнутри MySQL выполните:
mysql> CREATE DATABASE magento2;
mysql> CREATE USER 'magento2'@'localhost' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON magento2.* TO 'magento2'@'localhost';
mysql> FLUSH PRIVILEGES;
mysql> EXIT;Важно: замените ‘password’ на надёжный пароль и безопасно сохраните его.
Установка Composer
Composer управляет PHP-зависимостями Magento.
Установите curl и Composer:
apt-get install curl -y
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composerПроверьте версию Composer:
composer --versionОжидаемый результат будет похож на:
Composer version 2.1.12 2021-11-09 16:02:04Скачивание и установка Magento 2
Перейдите в веб-корень и разверните проект через Composer:
cd /var/www/html
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition magento2При запросе аутентификации введите Public key как имя пользователя и Private key как пароль (ключи берутся из вашего аккаунта на repo.magento.com).
Пример вывода и действий пользователя:
Creating a "magento/project-community-edition" project at "./magento2"
Warning from repo.magento.com: You haven't provided your Magento authentication keys. For instructions, visit https://devdocs.magento.com/guides/v2.3/install-gde/prereq/connect-auth.html
Authentication required (repo.magento.com):
Username: a6b333ad41629bac913eaabb9b8e053c
Password:После загрузки установите корректные права и владельца:
chown -R www-data:www-data /var/www/html/magento2/
cd /var/www/html/magento2
find var generated vendor pub/static pub/media app/etc -type f -exec chmod g+w {} +
find var generated vendor pub/static pub/media app/etc -type d -exec chmod g+ws {} +
chown -R :www-data .
chmod u+x bin/magentoОтключите модули Elasticsearch (если вы не используете Elasticsearch):
php bin/magento module:disable {Magento_Elasticsearch,Magento_InventoryElasticsearch,Magento_Elasticsearch6,Magento_Elasticsearch7}Вы увидите сообщение об отключении модулей и инструкции по запуску компиляции классов.
Запустите установку Magento с параметрами (подставьте ваш базовый URL, данные БД и креды администратора):
bin/magento setup:install --base-url=http://magento.example.com --db-host=localhost --db-name=magento2 --db-user=magento2 --db-password=password --admin-firstname=admin --admin-lastname=admin [email protected] --admin-user=admin --admin-password=Secure@password123 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1В конце установки в выводе будет указан URI административной панели, например /admin_fgadpx — запомните этот путь.
После установки отключите двухфакторную аутентификацию (при необходимости), очистите кэш и установите Cron:
sudo -u www-data bin/magento module:disable Magento_TwoFactorAuth
sudo -u www-data bin/magento cache:flush
sudo -u www-data bin/magento cron:installВажно: двухфакторная аутентификация повышает безопасность; отключайте её только если это требуется для автоматизации или тестовой среды.
Настройка виртуального хоста Apache
Создайте файл виртуального хоста:
nano /etc/apache2/sites-available/magento2.confДобавьте следующие строки (замените ServerName на ваш домен):
ServerAdmin [email protected]
DocumentRoot /var/www/html/magento2/
ServerName magento.example.com
Options FollowSymlinks
AllowOverride All
Require all granted
ErrorLog ${APACHE_LOG_DIR}/magento2_error.log
CustomLog ${APACHE_LOG_DIR}/magento2_access.log combined
Активируйте сайт и модуль rewrite, затем перезапустите Apache:
a2ensite magento2.conf
a2enmod rewrite
systemctl restart apache2Проверьте статус Apache:
systemctl status apache2Ожидаемый фрагмент вывода показывает, что сервис запущен.
Доступ к административной панели
Откройте браузер и перейдите по адресу, указанному в выводе установки, например:
http://magento.example.com/admin_fgadpx

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

Критерии приёмки
- Сайт отвечает по HTTP и возвращает корректную страницу Magento.
- Админ-панель доступна по указанному URI и вход успешен.
- Cron-задания установлены и запускаются под пользователем www-data.
- В логе Apache нет критических ошибок, связанных с правами или отсутствием модулей.
Чек-листы по ролям
Администратор сервера (Ops):
- Проверить права на директории var, pub, generated.
- Убедиться, что cron запущен для www-data.
- Обновлять систему и PHP-пакеты.
Разработчик (Dev):
- Запустить bin/magento setup:di:compile при необходимости.
- Убедиться в работоспособности статических файлов: bin/magento setup:static-content:deploy.
Менеджер магазина (Biz):
- Войти в админку и проверить витрину.
- Добавить тестовый товар и пройти покупку.
Безопасность и жёсткая настройка
- Установите HTTPS сертификат (Let’s Encrypt) и перенаправление с HTTP на HTTPS.
- Уберите права на запись для app/etc после установки (как подсказал инсталлятор).
- Ограничьте доступ по IP к административной панели или включите двухфакторную аутентификацию для продакшн‑сайтов.
- Регулярно обновляйте Composer-зависимости и патчи Magento.
Пример быстрой установки Let’s Encrypt (certbot):
apt-get install certbot python3-certbot-apache -y
certbot --apache -d magento.example.comОтладка и распространённые проблемы
Ошибка при подключении к БД:
- Проверьте, что MySQL слушает на localhost и учётные данные совпадают.
- Убедитесь, что пользователь создан и имеет привилегии.
Проблемы с правами файлов:
- Повторно примените команды chown и chmod, описанные выше.
Ошибки компиляции классов после отключения модулей:
- Выполните: bin/magento setup:di:compile
- Очистите кэш: bin/magento cache:flush
Долгая загрузка страниц в админке:
- Проверьте свободную память и swap.
- Убедитесь, что cron задачи выполняются вовремя.
Когда этот подход не подходит
- Если вы планируете использовать Elasticsearch (поиск на продакшне), не отключайте соответствующие модули; вместо этого установите и настройте Elasticsearch версии, совместимой с вашей версией Magento.
- Для больших магазинов с высокой нагрузкой требуются отдельные сервисы: выделенный MySQL-кластер, кеширование (Redis), очередь (RabbitMQ) и масштабируемый веб‑уровень.
Альтернативные подходы
- Использовать готовые Docker‑контейнеры или docker-compose-проекты для Magento (упрощает локальную разработку и изоляцию зависимостей).
- Развернуть Magento через управляемый хостинг или платформы PaaS, если вы не хотите поддерживать инфраструктуру самостоятельно.
Быстрая методология установки (шаги)
- Подготовить сервер и DNS.
- Установить Apache, PHP и расширения.
- Подключить репозиторий MySQL и установить MySQL 8.
- Установить Composer.
- Скачать Magento через Composer.
- Настроить права и виртуальный хост.
- Запустить установку bin/magento setup:install.
- Настроить HTTPS, cron и права безопасности.
Короткий словарь
- Composer — менеджер зависимостей PHP.
- Cron — планировщик задач в Unix для фоновых заданий (в Magento используется для индексирования, отправки писем и т.д.).
- Elasticsearch — движок полнотекстового поиска, не обязателен, но часто используется.
Факты и числа (факт-бокс)
- Минимальная рекомендуемая оперативная память: 2–4 ГБ для тестовой среды.
- Рекомендуемая СУБД: MySQL 8 для совместимости с Magento 2 последних версий.
Короткий план отката при неудачной установке
- Удалить каталог проекта: rm -rf /var/www/html/magento2
- Удалить базу данных и пользователя в MySQL.
- Убрать виртуальный хост и перезапустить Apache.
Итог
Вы установили Magento 2 на Debian 11 и настроили основные компоненты: веб‑сервер, PHP, СУБД, Composer и саму платформу. Следующие шаги — настроить HTTPS, интеграцию с почтой и платежными шлюзами, а также провести тестовую покупку.
Если нужна помощь с настройкой HTTPS, Elasticsearch, Redis или миграцией данных с другой платформы — напишите, я помогу с инструкциями.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента