Обзор развертывания Magento на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы:
-
Операционная система: Ubuntu 22.04 (jammy).
-
Права доступа: Права суперпользователя (root) для установки системных пакетов и настройки сервисов.
-
Доменное имя: Требуется наличие домена в зоне
hostkey.in. -
Порты:
-
80(HTTP) — для перенаправления на HTTPS. -
443(HTTPS) — основной порт приложения. -
9200(OpenSearch) — для работы поискового движка.
FDQN итоговой панели на домене hostkey.in¶
| Параметр | Значение |
|---|---|
| Префикс | magento |
| Домен | hostkey.in |
| Полный шаблон | magento{Server_ID}.hostkey.in |
Структура файлов и каталогов¶
Основные пути в системе:
-
/var/www/magento— рабочая директория приложения Magento. -
/etc/apache2/sites-available/— конфигурационные файлы веб-сервера Apache. -
/etc/opensearch/— конфигурация поискового движка OpenSearch. -
/etc/redis/— конфигурация Redis. -
/var/log/apache2/— журналы ошибок и доступа веб-сервера.
Процесс установки приложения¶
Развертывание Magento выполняется в несколько этапов:
-
Подготовка системы: Обновление списков пакетов, установка базовых зависимостей (
curl,unzip,software-properties-common) и включение репозитория Universe. -
Установка среды выполнения PHP: Устанавливается PHP версии
8.3со всеми необходимыми расширениями (bcmath,xml,curl,gd,intl,dom,mysql,soap,zip,mbstring). -
Настройка Composer: Установка менеджера зависимостей Composer и настройка глобальных ключей доступа к репозиторию Magento для загрузки файлов проекта.
-
Развертывание проекта:
-
Удаление существующей директории
/var/www/magento(если она была). -
Создание чистого проекта через команду
composer create-project. -
Установка и настройка Magento: Выполнение команды
bin/magento setup:installс параметрами базы данных, URL и учетных данных администратора. -
Финальная сборка:
-
Компиляция кода (
setup:di:compile). -
Развертывание статического контента (
setup:static-content:deploy). -
Настройка планировщика задач (Cron).
Права доступа и безопасность¶
Для обеспечения работоспособности приложения применяются следующие правила:
-
Владелец: Все файлы и директории в
/var/www/magentoпринадлежат пользователюwww-data. -
Права на файлы: Для файлов в ключевых директориях (
var,generated,vendor,pub/static,pub/media,app/etc) установлены права на чтение и запись для группы. -
Безопасность Apache: Настроен автоматический редирект с HTTP на HTTPS через модуль
mod_rewrite. -
SSL: Используется Certbot для автоматического получения и настройки SSL-сертификатов Let's Encrypt.
Базы данных¶
Приложение использует локальную систему управления базами данных:
-
СУБД: MariaDB версии
10.6. -
Имя базы данных:
magento. -
Пользователь БД:
magento. -
Хост:
localhost.
Контейнеры Docker и их запуск¶
В данной конфигурации компоненты приложения развертываются непосредственно в операционной системе как системные сервисы, а не в изолированных контейнерах Docker.
Кастомные скрипты и дополнительные настройки¶
Для расширения функциональности системы используются следующие инструменты:
-
Установочный скрипт RabbitMQ: Скрипт
/root/install_rabbitmq.shиспользуется для добавления репозиториев и установки брокера сообщений RabbitMQ (если включена соответствующая опция). -
Настройка OpenSearch: Выполняется ручная правка конфигурационного файла
/etc/opensearch/opensearch.ymlдля настройки имени кластера, имени узла, сетевого хоста (127.0.0.1) и отключения плагина безопасности для упрощения локального взаимодействия.
Инструкция по обновлению приложения¶
Для обновления основного приложения Magento необходимо выполнить следующие действия:
-
Обновить зависимости через Composer в директории
/var/www/magento. -
Выполнить пересборку статического контента и компиляцию кода:
-
Очистить кэш приложения:
Расположение конфигурационных файлов и данных¶
| Тип файла | Путь |
|---|---|
| Конфигурация Apache | /etc/apache2/sites-available/{prefix}{server_id}.{zone}.conf |
| Данные приложения | /var/www/magento/pub/media |
| Логи ошибок | ${APACHE_LOG_DIR}/{prefix}{server_id}.{zone}-error.log |
Доступные порты для подключения¶
-
443: HTTPS (основной интерфейс приложения). -
9200: OpenSearch API. -
6379: Redis.
Запуск, остановка приложения¶
Управление основными сервисами осуществляется через systemctl:
-
Перезагрузка веб-сервера:
systemctl reload apache2 -
Перезагрузка базы данных:
systemctl restart mariadb -
Перезагрузка поискового движка:
systemctl restart opensearch