Перейти к содержанию

Обзор развертывания 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.

Установка включает следующие шаги:

  1. Установка пакета composer из репозитория Ubuntu.

  2. Настройка учетных данных репозитория Magento в Composer.

  3. Создание директории проекта по пути /var/www/magento с помощью команды:

    composer create-project --repository=https://repo.magento.com/ magento/project-community-edition /var/www/magento
    

  4. Запуск скрипта установки 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:

    systemctl start apache2.service
    systemctl stop apache2.service
    systemctl restart apache2.service
    systemctl status apache2.service
    

  • MariaDB:

    systemctl start mariadb.service
    systemctl stop mariadb.service
    systemctl restart mariadb.service
    systemctl status mariadb.service
    

  • OpenSearch:

    systemctl start opensearch.service
    systemctl stop opensearch.service
    systemctl restart opensearch.service
    systemctl status opensearch.service
    

  • OpenSearch Dashboards:

    systemctl start opensearch-dashboards.service
    systemctl stop opensearch-dashboards.service
    systemctl restart opensearch-dashboards.service
    systemctl status opensearch-dashboards.service
    

  • Redis:

    systemctl start redis.service
    systemctl stop redis.service
    systemctl restart redis.service
    systemctl status redis.service
    

Для обновления кода приложения Magento используйте инструменты Composer или CLI Magento внутри директории /var/www/magento, после чего выполните развертывание статического контента:

php bin/magento setup:static-content:deploy -f
php bin/magento cache:flush

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×