Скидка 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

Ошибка 404: что это и как устранить

Ситуация, когда вы ищете определенную страницу, а на экране появляется уведомление “404 Not Found”...

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

post thumbnail

Что такое отчет MTR и чем он полезен

MTR — это инструмент, благодаря которому администраторы имеют возможность диагностировать и иcправить ошибки Сети,...

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

post thumbnail

Начальная настройка сервера ubuntu

Введение При первом запуске сервера Ubuntu 18 понадобятся важные базовые настройки для обеспечения надежной...

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