Обзор развертывания Magento на сервере¶
Предварительные требования¶
Для корректной работы приложения требуются следующие параметры системы:
-
Операционная система: Ubuntu 22.04 (Jammy).
-
Права доступа: Права суперпользователя (root) для установки системных пакетов и настройки конфигураций.
-
Доменное имя: Требуется наличие настроенного DNS для работы по протоколу HTTPS.
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. -
/etc/mysql/(или аналогичный путь MariaDB) — база данных.
Процесс установки приложения¶
Развертывание включает в себя комплексную настройку окружения и установку Magento Open Source через Composer:
-
Подготовка системы: Обновление репозиториев, установка базовых утилит (
curl,unzip,gnupg2и др.) и включение репозитория Universe. -
Установка среды выполнения PHP: Установка PHP версии 8.3 и необходимых расширений (
bcmath,xml,curl,gd,intl,dom,mysql,soap,zip,mbstring). -
Установка менеджера пакетов: Установка Composer из официальных репозиториев Ubuntu.
-
Настройка репозитория Magento: Настройка глобального доступа к
repo.magento.comс использованием персональных ключей доступа (public_keyиprivate_key). -
Развертывание проекта: Удаление старых данных в
/var/www/magentoи создание нового проекта через команду:composer create-project --repository=https://repo.magento.com/ magento/project-community-edition /var/www/magento. -
Конфигурация Magento: Выполнение команды
bin/magento setup:installс параметрами базы данных, URL и настроек поиска. -
Оптимизация и компиляция:
-
Генерация статического контента (
setup:static-content:deploy). -
Компиляция кода (
setup:di:compile). -
Установка планировщика задач (
cron:install).
Права доступа и безопасность¶
Для обеспечения работы веб-сервера и корректной генерации файлов выполняются следующие действия:
-
Владелец: Все файлы в директории приложения принадлежат пользователю
www-data. -
Права на файлы/папки: Устанавливаются права на запись для группы
www-dataв критически важных каталогах (var,generated,pub/static,pub/media,app/etc). -
Безопасность Apache: Настроен автоматический редирект с HTTP на HTTPS.
Базы данных¶
Для работы приложения используются следующие компоненты:
-
MariaDB (версия 10.6): Основная база данных, в которой создается база
magentoи пользовательmagento. -
Redis: Используется для кэширования; настроен на работу с системным менеджером
systemd.
Контейнеры Docker и их запуск¶
В данной конфигурации компоненты развертываются непосредственно в операционной системе как системные службы, а не в изолированных контейнерах Docker.
Кастомные скрипты и дополнительные настройки¶
-
Установочный скрипт RabbitMQ: Если включена опция использования очереди сообщений, выполняется скрипт
/root/install_rabbitmq.sh, который добавляет необходимые репозитории (Erlang и RabbitMQ) и устанавливает серверную часть. -
Настройка OpenSearch: Выполняется ручная правка конфигурационного файла
/etc/opensearch/opensearch.ymlдля настройки имени кластера, сетевого хоста (127.0.0.1) и отключения плагина безопасности для упрощения локального взаимодействия. -
Настройка SSL (Certbot): Скрипт автоматически запрашивает и устанавливает бесплатный SSL-сертификат Let's Encrypt через модуль
python3-certbot-apache, если сертификат еще не существует.
Инструкция по обновлению приложения¶
Для обновления основного приложения Magento рекомендуется использовать следующие команды в директории /var/www/magento:
-
Обновление зависимостей:
composer update -
Компиляция кода и очистка кэша:
php bin/magento setup:di:compilephp bin/magento cache:flush -
Деплой статического контента:
php bin/magento setup:static-content:deploy -f
Расположение конфигурационных файлов и данных¶
| Тип | Путь |
|---|---|
| Корневая папка приложения | /var/www/magento |
| Логи Apache (ошибки) | ${APACHE_LOG_DIR}/{prefix}{server_id}.{zone}-error.log |
| Логи Apache (доступ) | ${APACHE_LOG_DIR}/{prefix}{server_id}.{zone}-access.log |
Доступные порты для подключения¶
-
80 (HTTP): Для перенаправления на защищенное соединение.
-
443 (HTTPS): Основной порт для доступа к интерфейсу магазина и админ-панели.
-
9200: Порт OpenSearch (доступен локально).
-
6379: Порт Redis (локально).
Запуск, остановка приложения¶
Управление основными служсами осуществляется через systemctl:
-
Запуск MariaDB:
systemctl start mariadb -
Перезапуск Apache:
systemctl reload apache2 -
Статус OpenSearch:
systemctl status opensearch -
Статус Redis:
systemctl status redis