технічне обслуговування

Щоразу, коли вам потрібно провести тестування, випустити оновлення або виправити помилку, вам потрібно ввімкнути режим обслуговування Magento 2. Він ініціює відображення повідомлень «Сервіс тимчасово недоступний» на всіх сторінках вашого веб-сайту.

Отже, незалежно від інших Режими Magento , режим технічного обслуговування завдає найбільших незручностей як продавцям, так і користувачам. Особливо, якщо вони не знають, що цей режим собою являє.

Ось чому сьогодні ви отримаєте всі відповіді на питання про те, що таке режим обслуговування Magento, чому він важливий і як його правильно використовувати. Ми також поділимося деякими секретами про те, як увімкнути режим обслуговування в Magento без простоїв.

Зацікавлені? Почнемо!

Що таке режим обслуговування Magento 2?

Режим обслуговування Magento 2 – це процес тимчасового блокування доступу користувачів до вашого веб-сайту, поки ви виконуєте оновлення, налаштування або інші вдосконаленняЯкщо ви ввімкнете режим технічного обслуговування, відвідувачі веб-сайту побачать сторінку технічного обслуговування зі спеціальним повідомленням.

Існують деякі винятки, коли користувачі з певних IP-адрес можуть отримати доступ до вашого сайту як завжди, навіть у цьому режимі.

Режим обслуговування Magento 2 позначено як Файл maintenance.flag.

  • Режим обслуговування буде вимкнено, і Magento працюватиме як завжди, якщо немає...var/.maintenance.flag.
  • Режим обслуговування працюватиме, якщо var/.maintenance.flag існує (і немає виключених IP-адрес).
  • Режим обслуговування працюватиме як завжди для списку IP-адрес, позначених у var/.maintenance.ip.

Перед увімкненням режиму обслуговування Magento

Перш ніж увімкнути режим обслуговування в Magento, вам потрібно врахувати кілька речей:

  • Вам потрібно мати доступ до адміністративної панелі Magento 2 і права адміністратора працювати в режимі технічного обслуговування.
  • Ми рекомендуємо вам резервна копія Magento щоб запобігти втраті даних, якщо під час налаштування технічного обслуговування щось піде не так.
  • Підготуйте дизайн сторінки обслуговування щоб замінити стандартне повідомлення «Сервер тимчасово недоступний» та відображати відповідну інформацію для ваших відвідувачів.
  • Щоб завантажити сторінку обслуговування, змінити файли або внести інші зміни, виконайте дії з обслуговування доступ до файлів вашого магазину через FTP або SSH.
  • Набір ваш магазин у режимі розробникащоб кешований вміст не впливав на відображення сторінки обслуговування.
  • Створіть графік технічного обслуговуванняВстановіть точний час початку та завершення технічного обслуговування та знайдіть спосіб повідомити про це свого клієнта. Наприклад, надсилайте електронні листи, публікуйте новини в соціальних мережах або публікуйте повідомлення на вебсайті про те, що незабаром будуть виконані технічні роботи.
  • Дослідіть, коли активність користувачів на вашому сайті найнижчаВаш вебсайт буде тимчасово недоступний, тому ви не хочете втручатися в процеси пошуку та покупок ваших клієнтів. Пізніше ми розповімо, як цього уникнути.

Добре сплановані дії допоможуть легко підтримувати ваш вебсайт у робочому стані та створити найкращі умови з мінімальним ризиком.

Увімкнути/вимкнути режим обслуговування Magento

Щоб увімкнути режим обслуговування в Magento, виконайте певний набір кроків та Команди Magento bin .

1. Виберіть каталог

Увійдіть до свого облікового запису SSH та перейдіть до каталогу, де встановлено Magento. Введіть цей рядок у командному рядку:

cd ~/public_html 

Якщо ви встановили Magento 2 у підкаталог, вкажіть на цей каталог ось так:  

cd ~/public_html/example

2. Дозвольте доступ до вашого магазину

Щоб дозволити доступ до вітрини вашого веб-сайту для певної IP-адреси, виконайте таку команду (xxx.xxx.xxx.xxx – це IP-адреса, до якої ви хочете дозволити доступ):

php bin / magento maintenance:allow-ips xxx.xxx.xxx.xxx

Якщо ви хочете додати кілька IP-адрес, розділіть їх комами.

php bin/magento maintenance:allow-ips xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx

Якщо ви хочете ввімкнути режим обслуговування без винятків IP-адрес, виконайте:

php bin/magento maintenance:enable

Щоб увімкнути режим обслуговування для всіх клієнтів, окрім xxx.x.x.xx і xxx.x.x.xx, запустити:

php bin/magento maintenance:enable --ip=xxx.x.x.xx --ip=xxx.x.x.xx

Щоб видалити кілька IP-адрес в одній команді, ви можете використовувати цю опцію кілька разів

 --ip=<ip address> 

Щоб видалити список виключених IP-адрес, скористайтеся цією командою:

php bin/magento maintenance:enable --ip=none

3. Увімкніть режим обслуговування в Magento 2

Щоб увімкнути режим, виконайте таку команду:

php bin/magento maintenance:enable

Якщо ви все зробили правильно, відвідувачі отримають повідомлення «Сервіс тимчасово недоступний» у своєму веббраузері (за винятком виключених IP-адрес).

503 Послуга тимчасово недоступна Magento 2

Ви також можете створити шаблон обслуговування, щоб замінити це повідомлення про помилку.

4. Використовуйте шаблон технічного обслуговування (необов'язково)

Ви можете додати власний шаблон, щоб не відлякувати користувачів повідомленням про технічне обслуговування. Наприклад, ви можете замінити фонове зображення або повідомлення і навіть надати сповіщення, коли очікувати повернення сайту.

У цьому прикладі ми використовуємо файл шаблону Помилка 503 для локалізованого контенту.

Конструктор Magento\Framework\Помилка\ПроцесорКлас приймає параметр GET для зміни макета скіна:

if (isset($_GET['skin'])) {
  $this->_setSkin($_GET['skin']);
}

Ви можете додати це правило перезапису у свій .htaccess файл, щоб додати параметр скіна до URL-адреси.

$_GET['skin'] parameter

Отже, перевірте, чи .maintenance.flag існує. Потім зверніть увагу на адресу сервера, посилання на HTTP_HOST, або будь-яка інша змінна, така як змінна ENV. Перевірте, чи існує параметр skin.

Потім слід встановити параметр за одним із цих правил:

RewriteCond% {DOCUMENT_ROOT} /var/.maintenance.flag -f

RewriteCond% {HTTP_HOST} ^ sub.example.com $

RewriteCond% {QUERY_STRING}! (^ | &) Skin = sub (& | $) [NC]

RewriteRule ^% {REQUEST_URI}? Skin = sub[L]

Скопіюйте файл 1 у 2:

pub / error / default / 503.phtml 
pub / error / sub / 503.phtml

А ці:

pub / error / default / css /styles.css
pub / error / sub / styles.css

Потім внесіть необхідні зміни до цих файлів, щоб забезпечити локалізований вміст у 503.phtml файл та користувацькі стилі в styles.css файл.

Перевірте, чи ваші шляхи вказують на помилки каталог, а також що назва каталогу відповідає параметру URL-адреси, зазначеному в ПерезаписатиПравилоУ попередньому прикладі використовується підрядник каталог, як параметр у RewriteRule (скін = підпрограма).

4. Перевірте стан режиму обслуговування Magento 2

Щоб перевірити стан режиму обслуговування на вашому веб-сайті, виконайте наступну команду:

php bin/magento maintenance:status

5. Вимкніть режим обслуговування

Виконайте таку команду, щоб повернути веб-сайт до життя:

php bin/magento maintenance:disable

Уникнення простою під час режиму технічного обслуговування

На жаль, ви не можете уникнути простоїв під час завантаження будь-яких змін у стандартному Magento. Ось чому ви часто вдаєтеся до незручного часу розгортання, коли у вашому магазині мало або взагалі немає користувачів.

Не дуже зручно для користувача, у будь-якому разі для розробників. Але рішення є — Модуль Magento 2 Zero Downtime Deployment .

Це допоможе вам досягти нульового простою в розгортанні за допомогою лише однієї команди:

bin/magento magefan:zero-downtime:deploy

Але це ще не все. Ви досягаєте нульового часу простою під час виконання інших завдань розробки — встановлення розширень, зміни режимів Magento та інших. Усе це з Git або без нього. Для цього існує цілий набір команди розгортання з нульовим часом простою .

Це відкриває багато можливостей для розробників для покращення процесу розробки. Тепер ви можете виправляти помилки та вносити зміни до свого магазину, не погіршуючи взаємодію з користувачем.