Установка Magento на CentOS 8 с бесплатным SSL Let's Encrypt
TL;DR
Magento можно развернуть на CentOS 8 с LEMP (Nginx, MariaDB, PHP-FPM) и защитить сайт бесплатным сертификатом Let’s Encrypt. В статье пошагово показано: подготовка сервера, установка зависимостей, конфигурация PHP-FPM и Nginx, создание базы данных, загрузка Magento, права и cron, настройка SELinux/фаервола и получение SSL через certbot. В конце — рекомендации по безопасности, чек-листы и критерии приёмки.

Magento — одна из самых популярных open-source платформ для электронной коммерции. Она написана на PHP, основана на Zend Framework и использует модель данных EAV (Entity Attribute Value). Интерфейс удобен для настройки магазина и управления товарами и заказами.
В этом руководстве показано, как установить Magento на CentOS 8 и защитить сайт бесплатным SSL-сертификатом от Let’s Encrypt.
Основные требования
- Сервер с CentOS 8 и минимум 2 ГБ оперативной памяти. 4 ГБ рекомендуется для продакшн-установок.
- Домен, указывающий на IP-сервер (A-запись).
- Пароль root настроен на сервере.
Шаг 1 — Установка стека LEMP
Установите Nginx, MariaDB, PHP и необходимые PHP-модули:
dnf install nginx mariadb-server php php-cli php-mysqlnd php-opcache php-xml php-gd php-soap php-bcmath php-intl php-mbstring php-json php-iconv php-fpm php-zip unzip git -yЗапустите службы и включите автозапуск при загрузке:
systemctl start nginx
systemctl start mariadb
systemctl start php-fpm
systemctl enable nginx
systemctl enable mariadb
systemctl enable php-fpmОтредактируйте файл php.ini и настройте основные параметры:
nano /etc/php.iniИзмените или добавьте следующие строки:
memory_limit =512M
upload_max_filesize = 200M
zlib.output_compression = On
max_execution_time = 300
date.timezone = Asia/KolkataСохраните файл и закройте редактор.
Шаг 2 — Настройка базы данных
MariaDB необходимо обезопасить:
mysql_secure_installationОтветьте на вопросы скрипта (установите пароль root, удалите анонимных пользователей, удалите тестовую базу и перезагрузите таблицы привилегий).
Затем войдите в оболочку MariaDB:
mysql -u root -pСоздайте базу данных и пользователя для Magento (замените password на безопасный пароль):
MariaDB [(none)]> CREATE DATABASE magentodb;
MariaDB [(none)]> GRANT ALL ON magentodb.* TO magento@localhost IDENTIFIED BY 'password';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;Шаг 3 — Конфигурация PHP-FPM для Magento
Создайте пул PHP-FPM для Magento:
nano /etc/php-fpm.d/magento.confДобавьте:
[magento]
user = nginx
group = nginx
listen.owner = nginx
listen.group = nginx
listen = /run/php-fpm/magento.sock
pm = ondemand
pm.max_children = 50
pm.process_idle_timeout = 10s
pm.max_requests = 500
chdir = /Перезапустите PHP-FPM для применения настроек:
systemctl restart php-fpmВажно: параметры pm.max_children и pm.max_requests подбирайте под нагрузку и доступную память.
Шаг 4 — Загрузка Magento
Скачайте релиз Magento (в примере — архив 2.3) и распакуйте его в /var/www/html:
cd /var/www/html
wget https://github.com/magento/magento2/archive/2.3.zip
unzip 2.3.zip
mv magento2-2.3 magento2Установите Composer, менеджер зависимостей PHP:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composerУстановите зависимости Magento:
cd /var/www/html/magento2
composer update
composer installСоздайте crontab Magento для выполнения периодических задач:
./bin/magento cron:install
crontab -lПример ожидаемого вывода crontab:
#~ MAGENTO START f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1f
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento cron:run 2>&1 | grep -v "Ran jobs by schedule" >> /var/www/html/magento2/var/log/magento.cron.log
* * * * * /usr/bin/php /var/www/html/magento2/update/cron.php >> /var/www/html/magento2/var/log/update.cron.log
* * * * * /usr/bin/php /var/www/html/magento2/bin/magento setup:cron:run >> /var/www/html/magento2/var/log/setup.cron.log
#~ MAGENTO END f73db5f5dcf223372d4c9fab56bef0c1730eece898fad5cbee0c313b46b0dd1fУстановите владельца и права на каталог Magento (в примере используется пользователь nginx):
chown -R nginx:nginx /var/www/html/magento2
chmod -R 755 /var/www/html/magento2Замечание: для продакшна рекомендуется точнее настроить права (например, каталог var, pub/static и app/etc должны иметь особые права на запись).
Шаг 5 — Конфигурация Nginx для Magento
Создайте виртуальный хост Nginx:
nano /etc/nginx/conf.d/magento.confДобавьте конфигурацию:
upstream fastcgi_backend {
server unix:/run/php-fpm/magento.sock;
}
server {
listen 80;
server_name magento.linuxbuz.com;
set $MAGE_ROOT /var/www/html/magento2;
set $MAGE_MODE developer;
access_log /var/log/nginx/magento-access.log;
error_log /var/log/nginx/magento-error.log;
include /var/www/html/magento2/nginx.conf.sample;
}Перезапустите службы:
systemctl restart php-fpm
systemctl restart nginxШаг 6 — SELinux и фаервол
Если SELinux включён, сделайте httpd процесс допустимым в режиме permissive для быстрого тестирования (в продакшне рассмотрите детальную настройку контекстов):
semanage permissive -a httpd_tОткройте HTTP/HTTPS в фаерволе:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadПримечание: вместо permissive лучше выставлять специальные контексты файлов (chcon) и boolean-правила.
Шаг 7 — Защита сайта с помощью Let’s Encrypt
Скачайте certbot и назначьте права:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoЗапустите certbot для автоматической установки сертификата через плагин nginx (замените домен на ваш):
certbot-auto --nginx -d magento.linuxbuz.comВо время установки certbot установит дополнительные зависимости и попросит ввести email и согласиться с условиями. В конце вы сможете выбрать редирект с HTTP на HTTPS — для нового сайта рекомендуется включить редирект.
После выдачи сертификата файлы будут в /etc/letsencrypt/live/ваш_домен/ (fullchain.pem и privkey.pem). Certbot также настраивает автоматическое обновление сертификатов.
Шаг 8 — Доступ к мастеру установки
Откройте браузер и перейдите по адресу https://magento.linuxbuz.com. Вы попадёте на страницу приветствия установщика Magento.

Нажмите кнопку “Agree and Setup Magento” и пройдите проверку готовности системы.

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




Нажмите Install и дождитесь завершения установки.

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

Админ-панель обычно доступна по URL вида https://ваш_домен/


Дополнения и рекомендации
Когда этот подход не подойдёт
- На слабых VPS с <2 ГБ RAM производительность будет низкой. Рассмотрите выделенный сервер или более лёгкие решения.
- Если вы предпочитаете контейнеризацию или оркестрацию (Docker, Kubernetes), инструкция для классической установки может не подходить.
- Для высоконагруженных магазинов требуется тонкая оптимизация кеша, CDN и отдельный кластер баз данных.
Альтернативные подходы
- Docker Compose / Kubernetes: удобнее для CI/CD и масштабирования.
- Managed-hosting для Magento (PaaS) — снимает часть задач администрирования.
- OpenMage (форк Magento 1) — только если нужна совместимость со старым кодом.
Мини-методология быстрой проверки перед запуском
- Проверить доступность порта 80/443 и корректность DNS.
- Пройти readiness check в мастере установки Magento.
- Проверить записи cron и логи var/log.
- Проверить права на каталоги var, pub/static и app/etc.
- Выполнить тестовые покупки и регистрацию клиента.
Факт-бокс с ключевыми цифрами
- Минимальная RAM: 2 ГБ (рекомендуется 4 ГБ+)
- Требуемое ПО: Nginx, MariaDB, PHP-FPM (PHP 7.x совместим с Magento 2.3 — проверьте поддерживаемые версии)
- SSL: бесплатно через Let’s Encrypt, сертификат действует 90 дней
- Рекомендуемые права: владелец веб-процесса (nginx) для файлов, только некоторые каталоги с правом записи
Рекомендации по безопасности
- Закройте доступ к папке app/etc и файлам .env (если они присутствуют).
- Используйте сильный пароль для базы и администратора.
- Включите двухфакторную аутентификацию для админ-панели.
- Настройте регулярное резервное копирование (базы и файлов) и тестируйте откат.
- Не используйте permissive SELinux в продакшне — вместо этого настройте контексты и boolean-переменные.
Чек-лист ролей
- Системный администратор:
- Обновил ОС и установил зависимости.
- Настроил firewall и SELinux корректно.
- Настроил резервное копирование.
- DevOps/Release engineer:
- Настроил cron и мониторинг.
- Подготовил процессы обновления Composer и деплоя статических файлов.
- Разработчик:
- Проверил совместимость модулей и PHP-расширений.
- Протестировал работу страниц на HTTPS и кеширование.
Критерии приёмки
- Сайт доступен по HTTPS и сертификат действителен.
- Mастер установки завершился без ошибок.
- Cron-задания выполняются (логи без ошибок).
- Возможна регистрация клиента и оформление тестового заказа.
- Резервное копирование настроено и протестировано.
Совместимость и примечания по версиям
- Данный пример использует Magento 2.3 и CentOS 8. Перед установкой проверьте официальную документацию Magento по поддерживаемым версиям PHP и баз данных для выбранной версии платформы.
- Для Magento 2.4+ требуется Elasticsearch вместо встроенного поиска.
Короткий cheat sheet команд администратора
- Перезапустить сервисы:
systemctl restart nginx
systemctl restart php-fpm
systemctl restart mariadb- Проверить логи:
journalctl -u nginx -e
tail -n 200 /var/www/html/magento2/var/log/system.log- Обновить зависимости composer:
cd /var/www/html/magento2
composer update
php bin/magento setup:upgrade
php bin/magento setup:di:compile
php bin/magento setup:static-content:deploy -fИтог
Magento успешно установлена на CentOS 8 с использованием LEMP и защищена сертификатом Let’s Encrypt. После установки обязательно проведите проверку производительности, настройте резервное копирование и примените дополнительные меры безопасности для продакшн-окружения.
Важные ссылки по теме: официальная документация Magento и Let’s Encrypt.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента