Знижка 20% на українські домени. Промокод UA-20 діє до 26.10.22

Замовити

Чому виникає 500 помилка та як її виправити?

Error 500 – одна з найпопулярніших помилок, яку може підігнати сайт на WordPress, і не тільки. Зрозуміти, що це саме вона, легко – замість звичних сторінок на вашому сайті ви побачите сповіщення про те, що сторінка не працює (тип помилки ERROR 500), або просто білий екран.

Чому виникає 500 error?

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

Життєхитрик: якщо “екран смерті” з’являється на різних сайтах, що розміщуються на одному і тому ж хостингу, найімовірніше, проблема пов’язана з сервером. Якщо ж ні, то сміливо можна припустити, що причина криється в самому сайті.

В кожному окремому браузері 500-та помилка може відображатися по-різному.

Наприклад, такий вигляд має помилка в Chrome:

Mozilla Firefox видає наступну картинку, (білий екран смерті, або White Screen of Death):

Як пофіксити 500 помилку на сайті WordPress?

Обмежений обсяг пам’яті

Давайте з самого початку – що містить у собі поняття “ліміт доступної пам’яті”? Це, по суті, та оперативна пам’ять PHP, яка потрібна кожному файлу для успішного виконання скриптів. В принципі, ви можете самостійно збільшити обсяг пам’яті PHP, але за умови, що не перевищете ліміти ресурсів для вашого тарифу. В іншому ж випадку, доведеться звернутися до спеціалістів техпідтримки і вас переведуть на тариф з більшими лімітами.

Збільшити обсяг пам’яті PHP можна за допомогою PHP selector – окремого розділу у вашій панелі управління, який дозволяє керувати версіями РНР та їх параметрами, включаючи memory_limit (розмір пам’яті для РНР).

Розберемо на прикладі cPanel. Спускаємось до блоку “Програмне забезпечення” і заходимо у розділ “Select PHP Version”.

Перемикаємось на “Options”.

Спускаємось до параметру memory_limit і збільшуємо до максимального ліміту, доступного для вашого тарифу.

Не допомогло? Значить, шукаємо інші причини.

Застарілий кеш WordPress

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

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

Несправні плагіни WordPress

Що більше ви працюєте над своїм WordPress-сайтом, то більше плагінів вам потрібно для нормального його функціонування. Рано чи пізно один з них може стати причиною 500 помилки. То як бути?

✅ Є доступ до панелі адміністратора:

Найпростіше – вимкнути всі плагіни, а потім активувати їх по одному. Якщо у вас є доступ до облікового запису адміністратора, в панелі оберіть “Плагіни” → “Встановлені плагіни” → ставимо прапорці біля “Плагінів”, щоб вибрати всі → в списку вгорі обираємо “Деактивувати” → “Застосувати”.

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

❎ Немає доступу в панель адміністратора:

Є варіант підключитися до сервера через SFTP/FTP-доступ. Після підключення ви побачите всі файли свого WordPress сайту. Нам потрібна папка public_html → wp-content → перейменовуємо папку plugins на “plugins_old” і повертаємось на сайт. Якщо він працює, то доведеться по одній перейменовувати папки всіх плагінів, поки не знайдемо “шпійона”.

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

Тема WordPress

Як і плагіни, ваша тема WordPress може виявитися застарілою або конфліктувати з плагіном. Іноді теми встановлюються неправильно через пошкоджені файли. Щоб позбутися цієї халепи, можна почати з тимчасової заміни вашої теми на тему WordPress за замовчуванням.

✅ Є доступ до панелі адміністратора:

Якщо у вас є доступ до панелі адміністратора, оберіть Зовнішній вигляд → Теми WordPress → активуємо тему за замовчуванням (найновіша Twenty Twenty-Two). У випадку, якщо після цих маніпуляцій 500 помилка зникла – проблема в сумісності вашої теми й поточної вордпресівської версії.

❎ Немає доступу до панелі адміністратора:

Відкриваємо SFTP/FTP-доступ → папка public_html → wp-content → themes → знаходимо назву папки активної теми → додаємо “_old” в кінці назви (це має деактивувати поточну тему) → якщо після цього помилка на сайті зникла, оновлюємо тему, якщо і це не допомогло, звертаємося до розробників (можна, звісно, самостійно переглянути файл functions.php і якщо вистачає компетенції, виправити там помилки коду).

Логи помилок WordPress

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

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

Заходимо на сайт через SFTP/FTP-доступ → відкриваємо папку public_html → знаходимо і клікаємо правою кнопкою миші на файл wp-config.php → обираємо опцію View/Edit → гортаємо файл до самого низу і вставляємо наступні рядки коду.

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

Перший рядок вмикає дебагінг, другий дає команду зберігати логи у файлі debug.log, а третій забороняє відображення виявлених помилок на самому сайті.

Зберігаємо зміни і знову заходимо на сайт – ви так само побачите 500-ту помилку, але цього разу WordPress вже запише її в лог.

Тепер, коли дебагінг ввімкнено, ви можете отримати доступ до логу помилок. Для цього скористаємось SFTP/FTP-клієнтом → папка public_html → wp-content → debug.log і відкриваємо його за допомогою опції View/Edit. У нижній частині файлу ви побачите останню зареєстровану помилку.

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

Як попередити виникнення 500-ої помилки на WordPress-сайті?

  • Завжди робіть резервні копії вашого сайту або оберіть хостинг-провайдера, який робитиме це за вас. Щоденні бекапи дають гарантії швидкого і безболісного відновлення сайту, якщо щось піде не так.
  • Використовуйте надійні плагіни і теми, які часто оновлюються. Так знизиться ймовірність того, що виникнуть несумісності з вашою версією WordPress.
  • Використовуйте dev-версію сайту для тестування змін.
  • Не ігноруйте сповіщення про необхідні оновлення.
  • Контролюйте юзерів. Досить важко слідкувати за змінами на сайті, коли до нього мають доступ багато людей. Краще видати доступи лише тим членам команди, в роботі яких впевнений, і спати собі спокійно.

Як пофіксити 500 помилку на сервері?

Хоч і є вірогідність того, що 500 помилка викликана проблемами з боку сайту, все ж частіше вона має серверне походження. Є кілька причин, чому сервер видає 500-ту помилку. Серед них можна виокремити ті, з якими ви можете впоратися самостійно через панель управління, а є такі, які здебільшого фіксять сисадміни.

Отже, до найбільш безболісних причин 500-ої помилки можемо віднести версію РНР та модулі, об’єм диску, кількість інод та права на файли і папки.

Версія РНР та модулі

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

На прикладі cPanel показуємо, як змінити версію PHP. Для цього спускаємося до блоку Програмне забезпечення → Select PHP Version (обираємо нову версію і потрібні нам модулі) → натискаємо на “Зробити поточною”. Якщо у вас кілька сайтів на одному акаунті, у результаті на всіх з них має автоматично оновитися версія PHP.

Об’єм диску

Причиною 500-ої помилки серверу можуть також бути ліміти дискового простору. Перевірити, скільки місця зайнято на вашому диску можна в cPanel → Статистика або ж Файли → Зайнято місця на диску. Якщо ви вже вперлися в ліміт, можна замовити додатковий диск або перейти на інший тариф. Для цього зверніться до нашої техпідтримки.

Кількість інод

Щоб перевірити, скільки інодів залишилося, а скільки використовується, виконайте команду df -i

[bluematador ~]$ df -i /dev/bluem1Filesystem Inodes IUsed IFree IUse% Mounted on/dev/bluem1 654972 516 654456 1% /boo

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

Ми рекомендуємо видаляти незадіяні файли ще до моменту досягнення ліміту використання інодів. Це можна зробити в розділі “Диспетчер файлів” у панелі керування cPanel.

Також зменшити кількість інодів може очищення кешу веб-серверу або сайту на CMS (найпростіший спосіб – за допомогою плагінів кешування). Як варіант також – видалення давніх бекапів.

Збільшити ліміти індексних дескрипторів на віртуальному хостингу зазвичай не можна. Тож, якщо потрібно зберігати більше файлів на одному акаунті, краще перейти на VPS – там лімітів inodes немає взагалі.

Права на файли та папки

Якщо у вас увімкнена опція display_errors (активується в “Select PHP Version” в cPanel), з логів ви можете отримати таке повідомлення:

Це значить, що серверу обов’язково треба відкрити файл version.php (“require”), щоб виконати скрипт. Однак він не має на нього прав доступу (“Permission denied”). Цьому є кілька пояснень:

  • неробочі права самого файлу чи папки;
  • власником файлу чи папки є один юзер, а сервер працює від імені іншого;
  • власник має права, а сервер – ні.

Як змінити власника?

Введіть в командному рядку: chown користувач:група /шлях/до/папки-або-файлу

Як змінити права?

Скористайтесь SFTP/FTP-клієнтом або панеллю керування сPanel → Файли → Диспетчер файлів.

Виділяємо потрібні файли чи папки→ натискаємо на “Доступи” (на панелі вгорі) → стандартні значення для файлів – 644, для папок – 755.

Завершальне слово

Отже, 500 error може виникати як з боку сервера, так і з боку самого сайту на WordPress. Найчастіші причини серверної проблеми: неправильна версія PHP, досягнення лімітів дискового простору, inodes, відсутність прав на файли й папки.

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

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

У будь-якому разі, ви завжди можете звернутися за допомогою до нашої техпідтримки. Ми з радістю допоможемо вам 24/7.

Можливо, вас зацікавить

post thumbnail

Як встановити Moodle на сервер: покрокова інструкція

Раніше ми знайомили вас із системою Moodle. Детальніше про те, що це за система...

Diana Baranovska | Оновлено: 11.01.2022

post thumbnail

Як налаштувати і активувати CDN Backup Agent на VPS під управлінням CentOS / Fedora

Після оплати послуги R1Soft і входу в акаунт, знадобиться подальша його настройка. Як підключити...

Diana Honcharenko | Оновлено: 15.09.2021

post thumbnail

Помилка 404: що це і як усунути

Ситуація, коли ви шукаєте певну сторінку, а на екрані з’являється повідомлення “404 Not Found”...

Diana Baranovska | Оновлено: 12.01.2022

post thumbnail

Що таке звіт MTR і чим він корисний

MTR – це інструмент, завдяки якому адміністратори мають можливість діагностувати і виправляти помилки мережі, а...

Diana Baranovska | Оновлено: 11.01.2022