Вам не подобається бачити, коли ваш магазин Magento 2 не працює або перебуває в режимі обслуговування під час виконання команд розгортання Magento 2? Так? Чудово. Протягом наступних 5 хвилин ми допоможемо вам із цим болем. У Magefan ми створили bash-скрипт для Linux , який дозволяє вам запускати команди bin/magento setup без зупинки магазину, тривалого простою та втрати продажів.
Увага! Ми не надаємо підтримку для цього скрипта, тому рекомендуємо використовувати .
Щоб використовувати розгортання 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 та в кількох магазинах клієнтів для розгортання нового дизайну та змін у бізнес-логіці. Ми раді поділитися цим з вами та отримати відгуки.
Certainly, the author could help with more info.
How it works for Multi-Node production websites ? For eg., website running on two VMs under one LB.
thanks,
Murali
interesting script and what if I want to install applications via composer?
Right now it's not a PHP script so it cannot be installed via composer. Maybe in the future, we will create a Magento 2 extension that will do the same, then you will be able to use composer
But when testing, I found that it only works if I have magento in developer mode. If I put magento into production mode, then an error occurs. Does it only work in developer mode? (Magento version 2.3.2)