Як виправити білий екран смерті на сайті WordPress

Білий екран смерті (White Screen of Death – WSoD) – це добре документована помилка WordPress, яка може виникати з ряду різних причин, і яка настільки ж дратівлива, як і її двоюрідний брат – синій екран смерті Windows. Ця помилка є такою неприємною з причини повної відсутності будь-яких повідомлень про помилки, що може стати кошмаром при усуненні неполадок. Якщо ви читаєте цю статтю, швидше за все ви вже стикалися з цією проблемою в той чи інший момент.

 

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

Що викликає Білий екран смерті:

  1. Обмежений обсяг пам’яті, встановлений хостингом (найчастіше на низькобюджетному хостингу)
  2. Тема, яка не підтримує певний плагін, або навпаки
  3. Погана якість коду теми або плагіну, що викликає помилку при оновленні WordPress
  4. Погана сумісність між плагінами

 

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

 

 

  1. Перевірте ліміт пам’яті

Ліміт пам’яті в контексті WordPress позначає параметр оперативної пам’яті PHP, який виділяється будь-якому файлу на виконання скриптів. Це одна з найпоширеніших помилок, з якою ви можете зіткнутися під час використання WordPress, але найчастіше вона виникає на низькобюджетному хостингу.

Ця проблема легко вирішується, але зверніть увагу, що деякі хостинг-провайдери не дозволять вам безпосередньо збільшувати ліміт оперативної пам’яті PHP, і в цьому випадку вам потрібно буде зв’язатися зі службою підтримки хостингу.

Зайдіть до кореневої теки розміщення вашого сайту (за допомогою будь-якого зручного файлового менеджера, або ж через панель керування хостингом) та відкрийте файл wp-config.php (за допомогою будь-якого зручного текстового редактора). Щоб підвищити ліміт до мінімально оптимального значення, додайте у цей файл наступний рядок:

define('WP_MEMORY_LIMIT', '128M');  

 



Крім цього не робіть більше жодних інших змін у файлі wp-config.php, якщо ви не хочете ще більше поламати свій сайт. Збережіть і закрийте файл та перевірте, чи не усунута помилка білого екрану на сайті.

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

 

 

  1. Перевірте плагіни

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

Перше, що потрібно зробити – це виключити можливість непрацюючих плагінів взагалі, і для цього ми відключимо одразу всі плагіни. Перейдіть до кореневої папки сайту, а потім зайдіть в папку wp-content. Ми перейменуємо папку, що відповідає за всі плагіни на сайті – plugins, щоб змусити WordPress вважати, що на сайті зовсім не використовуються плагіни. Перейменуйте цю папку довільним чином.

Після цього перевірте, чи запрацював ваш сайт. Навіть якщо WordPress не зможе завантажити плагіни, у вас все-таки повинен бути безперешкодний доступ до Консолі.

Якщо помилка зникла, значить настав час повернути попередню назву папки плагінів та шукати справжнього винуватця всередині папки plugins. Для цього повторіть ту ж саму процедуру, що й у попередньому пункті. Перейменовуйте по черзі кожну окрему папку плагінів, та перевіряйте одразу наявність помилки на сайті.

Якщо один з плагінів виявиться причиною БЕС, ви можете вчинити декількома шляхами. Першим буде повне видалення цього плагіну, якщо він не виконує важливої функції для сайту. Однак, якщо ви не хочете видаляти плагін, вам потрібно буде вирішити проблему із плагіном. Перш за все, перевірте, чи встановлено його останню версію, і, якщо ні, завантажте оновлену версію, після чого перевірте, чи вирішена проблема. Якщо проблема не зникла, ви можете звернутися до розробників плагіна за підтримкою.

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

 

 

  1. Перевірте свою тему

Методологія така ж, як і при роботі із плагінами. Перейдіть до кореневої папки сайту, а потім перейдіть до папки wp-content. Ми перейменуємо папку, що відповідає за всі теми на сайті – themes. Це примусово відключить її і активує на сайті WordPress останню тему за замовчуванням – Twenty Seventeen (у 2017-му році). Якщо ви раніше видаляли теми WordPress за замовчуванням, вам доведеться завантажити тему Twenty Seventeen у папку themes.

Після цього перейдіть на свій сайт і подивіться, чи залишається білий екран смерті. Якщо проблема зникла значить, ймовірно, існувала проблема сумісності теми та поточної версії ВордПрес.

Тепер налагодження теми може стати суцільним головним болем, але можливо для початку варто розглянути питання переходу на іншу тему?

Але що робити, якщо жоден з цих кроків не вирішив проблему із БЕС? Тоді переходьте до наступного кроку.

 

 

  1. Перевірте свої логи

У цьому кроці режим налагодження WordPress дозволить за допомогою докладних логів помилок точно визначити джерело помилки.

Бажано це робити на локальному сервері, а при неможливості цього, якнайшвидше виключайте режим налагодження після коротких тестів. Для включення режиму налагодження відкрийте файл wp-config.php та додайте наступні рядки PHP коду:

 

define('WP_DEBUG', true);  define('WP_DEBUG_LOG', true);  define('WP_DEBUG_DISPLAY', false);  

 

Перший рядок вказаного коду активує режим налагодження; другий наказує WordPress зберігати логи операцій в файлі debug.log (в каталозі wp-content), а останній рядок коду змушує систему НЕ показувати помилки на сайті, якщо вони будуть виявлені на сайті.

Сподіваємось, швидкий перегляд файлу логів покаже вам правильний напрямок у вирішенні помилки Білого екрану смерті. Не хвилюйтеся – самі логи досить легко читаються, навіть якщо у вас недостатньо досвіду кодування. Будь-яка зареєстрована помилка відображатиме як своє джерело у папці WordPress, так і мітку часу, що полегшить пошук джерела нещастя.

 

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