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

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

  1. Подготовка системы: Обновление репозиториев, установка базовых утилит (curl, unzip, gnupg2 и др.) и включение репозитория Universe.

  2. Установка среды выполнения PHP: Установка PHP версии 8.3 и необходимых расширений (bcmath, xml, curl, gd, intl, dom, mysql, soap, zip, mbstring).

  3. Установка менеджера пакетов: Установка Composer из официальных репозиториев Ubuntu.

  4. Настройка репозитория Magento: Настройка глобального доступа к repo.magento.com с использованием персональных ключей доступа (public_key и private_key).

  5. Развертывание проекта: Удаление старых данных в /var/www/magento и создание нового проекта через команду: composer create-project --repository=https://repo.magento.com/ magento/project-community-edition /var/www/magento.

  6. Конфигурация Magento: Выполнение команды bin/magento setup:install с параметрами базы данных, URL и настроек поиска.

  7. Оптимизация и компиляция:

  8. Генерация статического контента (setup:static-content:deploy).

  9. Компиляция кода (setup:di:compile).

  10. Установка планировщика задач (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:

  1. Обновление зависимостей: composer update

  2. Компиляция кода и очистка кэша: php bin/magento setup:di:compile php bin/magento cache:flush

  3. Деплой статического контента: 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

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