Обзор развертывания Magento на сервере¶
Предварительные требования¶
Для развертывания требуется сервер с операционной системой Ubuntu 22.04 (Jammy). Система должна иметь права root или эквивалентный доступ через sudo для установки пакетов и настройки служб. Для FQDN требуется домен или поддомен в зоне hostkey.in.
Следующие системные порты должны быть доступны для приложения и его зависимостей:
-
Порт 80 (HTTP)
-
Порт 443 (HTTPS)
-
Порт 3306 (MariaDB)
-
Порт 9200 (OpenSearch)
-
Порт 6379 (Redis)
FQDN конечного интерфейса приложения¶
Конечный интерфейс приложения доступен через полное доменное имя (Fully Qualified Domain Name, FQDN) в следующем формате:
magento<Server ID>.hostkey.in:443
Где <Server ID> — уникальный идентификатор хоста. Система настроена на использование исключительно HTTPS в конечном состоянии, перенаправляя HTTP-трафик на HTTPS.
Структура файлов и директорий¶
Приложение и его компоненты организованы в следующих директориях:
-
Корневая директория веб-сайта (Web Root):
/var/www/magento/pub -
Корневая директория приложения (Application Root):
/var/www/magento -
Конфигурация Apache:
/etc/apache2/sites-available/magento<Server ID>.hostkey.in.conf -
Конфигурация OpenSearch:
/etc/opensearch/opensearch.yml -
Конфигурация Redis:
/etc/redis/redis.conf -
Сертификаты Let's Encrypt:
/etc/letsencrypt/live/magento<Server ID>.hostkey.in/ -
Аутентификация Composer:
/root/.config/composer/auth.json
Процесс установки приложения¶
Установка приложения Magento выполняется с помощью пакетного менеджера Composer. Развертывается конкретная версия magento/project-community-edition.
Установка включает следующие шаги:
-
Установка пакета
composerиз репозитория Ubuntu. -
Настройка учетных данных репозитория Magento в Composer.
-
Создание директории проекта по пути
/var/www/magentoс помощью команды: -
Запуск скрипта установки Magento с конкретными параметрами базы данных и поискового движка.
Команда установки использует следующую конфигурацию:
-
Базовый URL:
https://magento<Server ID>.hostkey.in/ -
Язык:
en_US -
Валюта:
USD -
Часовой пояс:
UTC -
Имя пользователя администратора:
root -
Поисковый движок:
opensearch
Права доступа и безопасность¶
Веб-сервер работает от имени пользователя и группы www-data. Все файлы и директории внутри установки Magento принадлежат пользователю www-data.
Настройки безопасности включают:
-
Отключение модулей двухфакторной аутентификации (2FA) (
Magento_AdminAdobeImsTwoFactorAuth,Magento_TwoFactorAuth). -
Принудительное перенаправление на HTTPS в конфигурации виртуального хоста Apache.
-
Настройка OpenSearch для отключения внутреннего плагина безопасности (
plugins.security.disabled: true). -
Установка в Apache значений
AllowOverride AllиRequire all grantedвнутри директории/var/www/magento/pub.
Базы данных¶
Приложение использует MariaDB версии 10.6 для хранения данных. База данных размещена на localhost и доступна по следующим учетным данным:
-
Имя базы данных:
magento -
Пользователь базы данных:
magento -
Хост:
localhost
Служба базы данных управляется через systemd и запускается автоматически при загрузке системы.
Контейнеры Docker и их развертывание¶
В данном развертывании не используются контейнеры Docker. Все службы, включая веб-сервер, базу данных, кэш и поисковый движок, устанавливаются непосредственно на операционную систему хоста с использованием нативных пакетных менеджеров.
Прокси-серверы¶
Apache HTTP Server настроен в качестве веб-сервера и обратного прокси.
-
Виртуальный хост: Настроен на прослушивание порта 80 и перенаправление всего трафика на HTTPS на порт 443.
-
SSL/TLS: Управляется утилитой Certbot с использованием Let's Encrypt. Сертификаты выпускаются для домена
magento<Server ID>.hostkey.in. -
Правила перезаписи (Rewrite Rules): Модуль
mod_rewriteвключен для обработки перезаписи URL, необходимой для Magento.
Файл конфигурации Apache расположен по адресу /etc/apache2/sites-available/magento<Server ID>.hostkey.in.conf.
Настройки прав доступа¶
Права доступа настроены таким образом, чтобы веб-сервер мог читать и записывать необходимые файлы, сохраняя при этом безопасность:
-
Файлы: Для файлов в директориях
var,generated,vendor,pub/static,pub/mediaиapp/etcдобавлены права на запись для группы (g+w). -
Директории: Для директорий в тех же локациях применяются права на запись для группы и атрибут «липкая» (sticky bit) (
g+ws). -
Владелец: Все файлы и директории под
/var/www/magentoпринадлежат группеwww-data. -
Исполняемые файлы: Скрипт
bin/magentoимеет права на выполнение для владельца (u+x).
Расположение файлов конфигурации и данных¶
Критически важные файлы конфигурации хранятся в стандартных путях Linux:
-
Конфигурация сайта Apache:
/etc/apache2/sites-available/magento<Server ID>.hostkey.in.conf -
Конфигурация OpenSearch:
/etc/opensearch/opensearch.yml -
Конфигурация Redis:
/etc/redis/redis.conf -
Авторизация Composer:
/root/.config/composer/auth.json -
SSL-сертификаты:
/etc/letsencrypt/live/magento<Server ID>.hostkey.in/fullchain.pem
Доступные порты для подключения¶
Следующие порты настроены и открыты для подключения:
-
80: HTTP (Перенаправляет на HTTPS)
-
443: HTTPS (Безопасный доступ к приложению)
-
3306: MariaDB (Только локальное подключение)
-
9200: OpenSearch (Только локальное подключение, привязан к
127.0.0.1) -
6379: Redis (Локальное подключение)
Запуск, остановка и обновление¶
Управление службами осуществляется через systemd. Для контроля жизненного цикла установленных служб используются следующие команды:
-
Apache:
-
MariaDB:
-
OpenSearch:
-
OpenSearch Dashboards:
-
Redis:
Для обновления кода приложения Magento используйте инструменты Composer или CLI Magento внутри директории /var/www/magento, после чего выполните развертывание статического контента: