Вам не подобається бачити, коли ваш магазин Magento 2 не працює або перебуває в режимі обслуговування під час виконання команд розгортання Magento 2? Так? Чудово. Протягом наступних 5 хвилин ми допоможемо вам із цим болем. У Magefan ми створили  bash-скрипт для Linux , який дозволяє вам запускати команди bin/magento setup без зупинки магазину, тривалого простою та втрати продажів.

Увага! Ми не надаємо підтримку для цього скрипта, тому рекомендуємо використовувати Розширення Модуль Magento 2 Zero Downtime Deployment .

Щоб використовувати розгортання Magento 2 zero-downtime, виконайте наведені нижче кроки:

1. Встановіть скрипт розгортання Magento 2 zero-downtime

Виконайте ці команди CLI в кореневому каталозі Magento:

wget https://raw.githubusercontent.com/magefan/magento2-zero-downtime-deploy/refs/heads/master/installation.sh -O zdd_installation.sh
sh zdd_installation.sh

2. Налаштуйте скрипт zero-downtime

Якщо ви використовуєте певні команди розгортання статичного вмісту, тоді відредагуйте файл

deploy/app/static-content-deploy.sh

Відредагуйте deploy/app/env.php та додайте ці рядки:

'deployment' => [
'blue_green' => [
'enabled' => true
]
],

За замовчуванням він містить команди для розгортання всіх тем Magento 2 у всіх локалях.

Якщо ви використовуєте Redis або інше сховище поза папками для сеансу або кешу, тоді відредагуйте файл

deploy/app/env.php

Переконайтеся, що кеш і сеанс зберігаються в папці.

3. Використовуйте скрипт розгортання M2 без простою

Щоб розгортання статичного контенту Magento (bin/magento setup:static-content:deploy) з БЕЗ простою, використовуйте команду CLI:

deploy/run -s

Щоб згенерувати код та конфігурацію впровадження залежностей (bin/magento setup:di:compile) з БЕЗ простою, використовуйте команду CLI:

deploy/run -d

Ви також можете запустити скрипт з кількома параметрами, наприклад:

deploy/run -d -s

Щоб оновити дані бази даних та схему модулів Magento 2 (bin/magento setup:upgrade), використовуйте команду CLI:

deploy/run

Якщо ви встановлюєте нові розширення , виконайте цю команду:

deploy/run -m Vendor_Module1 Vendor_Module2

Зверніть увагу, що Ці команди також запускатимуть DI та генерацію статичного контенту, і це єдина команда, яка переводить магазин Magento 2 у режим обслуговування на кілька секунд, поки виконується setup:upgrade.

 

Чи справді це працює?

- Так, працює. Ми вже використовуємо це на Magefan.com та в кількох магазинах клієнтів для розгортання нового дизайну та змін у бізнес-логіці. Ми раді поділитися цим з вами та отримати відгуки.