Рассказываем, что значит request failed with status code 500, когда возникает эта ошибка, что с ней делать.
Что представляет собой ошибка 500
500 Internal Server Error — общепринятый стандартный код состояния. Браузер-клиент отправляет HTTP-запрос серверу, и в тех случаях, когда веб-cервер не с состоянии отработать запрос, отдаётся код 500. Все значения 5** говорят о проблеме со стороны сервера. Но пятисотая среди них особенная — сервер возвращает её, если ни один из других кодов не подходит. Её источником бывают самые различные проблемы, а найти первопричину не так просто.
Что вызывает ошибку 500
Среди причин 500-й ошибки называют следующие:
- Содержание глобальных файлов конфигурации.
- Содержание .htaccess.
- Не настроенные права доступа к ресурсу.
- Не пройденная аутентификация для доступа к базе данных.
- Превышение допустимой нагрузки на сервер.
- Не обновлённый PHP или синтаксические ошибки и опечатки в коде.
- Конфликтующие плагины CMS WordPress.
Ошибка 500 и SEO
Пятисотая ошибка серьёзно влияет на раскрутку сайта и может уничтожить проделанную в этом направлении работу, поэтому её нужно срочно исправлять. Если веб-краулер пытается проиндексировать страницу с кодом 500, то он откладывает индексацию на сутки. После чего возвращается. Если проблема вновь не решена, то страница удаляется из индекса.
Когда такая страница не одна или проблема возникает часто, то сайт понижается в рейтинге. После восстановления нормальной работы сайта обязательно посмотрите, есть ли страницы в индексе.
Второй немаловажный фактор — пользовательское поведение. Посетитель, наткнувшись на страницу с ошибкой, просто уйдёт к конкурентам.
Если ошибка уже возникла, то срочно принимайте меры — переходите к следующему разделу и узнавайте, что нужно делать.
Как админу сайта исправить ошибку 500
Первое, что нужно сделать (как и последнее, но об этом позже) — обратиться к провайдеру. Возможно, хостинг-провайдер проводит технические работы, и нужно просто подождать. Обычно об этом предупреждают заранее, но сообщение можно случайно пропустить.
А теперь о том, как своими силами найти причину и устранить ошибку.
Проверка глобальных параметров конфигурации
На виртуальном хостинге за глобальные настройки отвечает провайдер, он предоставляет уже настроенные системы, поэтому риск ошибки 500 довольно низкий.
Если же вы настраивали файлы конфигурации самостоятельно, то их нужно перепроверить. Даже незначительное отклонение от принятого синтаксиса приведёт к error 500: любая опечатка, не поставленная в нужном месте точка или, наоборот, один лишний знак.
- На Apache проверьте параметры в следующих директориях:
/etc/httpd/conf/httpd.conf
/etc/apache2/conf/apache.conf
/etc/httpd/conf.d/httpd.conf
/etc/apache2/conf.d/apache.conf
/etc/apache2/sites-available/apache.conf
/etc/apache2/sites-enabled/apache.conf
- Расположение на Nginx:
/etc/nginx/nginx.conf
/etc/nginx/conf.d/nginx.conf
/etc/nginx/sites-available/nginx.conf
/etc/nginx/sites-enabled/nginx.conf
Проверка файла .htaccess
Если непосредственно перед ошибкой .htaccess был отредактирован, то нужно закомментировать внесённые изменения. Если проблема исчезла — они и вызвали ошибку.
Но даже если вы не редактировали .htaccess-файл, источник ошибки может быть в нём. Иногда плагины на платформе CMS «Вордпресс» добавляют в него директивы, которые могут конфликтовать между собой и с другими директивами в файле. Чтобы узнать, вызвал ли htaccess ошибку 500, назначим ему другое имя и проверим работоспособность веб-ресурса. Как вариант, можно заменить настроенный файл на файл «из коробки» данной CMS.
Если сайт заработал, то причина кроется здесь, и нужно уточнять её дальше.
Чтобы найти строку, вызвавшую ошибку, прибегают к помощи онлайн-тестировщиков. Нужно ввести адрес сайта и содержимое .htaccess-файла в соответствующие поля формы, а алгоритмы проанализируют данные и выдадут результат.
Ещё один вариант — проверка вручную. В новый .htaccess-файл скопируем построчно параметры из «битого» файла, пока не найдётся «виновник торжества».
Корректность прав доступа
Некорректно заданный владелец файлов и каталогов, а также отсутствие требующихся прав у юзера, от имени которого выполняются серверные процессы, — возможные причины ошибки 500.
На виртуальных хостингах проблема не встречается, но может коснуться VPS/Local server.
Отредактируем права доступа и применим к ним стандартные параметры. В подавляющем большинстве каталоги имеют значения 755, а файлы — 644.
Проверка доступа сервера к БД
Сервер возвращает код 500, если БД ему недоступна. Возможная причина — неправильные логин и пароль, не обновлённые после их изменения. Смотрим .config в корневой директории (параметр DB password).
Использование ресурсов на сервере
MySQL-server допускает ограниченное количество действующих одновременно процессов. Когда уже запущено максимум из разрешённых, сервер не начнёт обработку следйющего запроса и отдаст код 500. Если часто используются все или почти все выделенные процессы, то целесообразно повысить мощность хостинга заранее, а не ждать падения сайта.
Ограничение времени выполнения скрипта
Если тяжёлые PHP-скрипты не выполняются в установленный хостингом срок, то также появляется ошибка 500.
Идеальным в этой ситуации будет обратиться к php-программисту и улучшить качество кода. Есть и другие варианты. Можно перенастроить максимальный размер оперативки и длительность процесса. В настройках PHP это строки max_execution_time (время) и memory_limit (максимальный объём памяти) — повышаем их до нужного значения. На виртуальном хостинге поможет только повышение мощности.
Проблема из-за версии PHP
Обновитесь до последней стабильной версии PHP, чтобы исправить ошибку.
Конфликтующие плагины Вордпресс
Дополнения «Вордпресс» могут провоцировать Internal Server Error. Если один из них является причиной ошибки, то узнать это можно двумя способами.
- Полностью деактивируйте плагины на платформе WordPress. Выберите в меню слева раздел «Плагины», затем «Активные». Система отобразит только активные модули, выберите их все и отключите. Если ошибка исчезла, то причина в них. Ищите среди них дальше. Включите их поодиночке, чтобы найти конфликтующий или нерабочий плагин.
- Если все страницы отдают ошибку 500 и зайти в консоль Вордпресс невозможно, то отключите их в интерфейсе управления хостингом. Ищите каталог wp-content и в нём — plugins, там и лежат плагины. Поменяйте название папки на любое другое, это деактивирует все дополнения одновременно, потому что система перестанет их распознавать. Зайдите на сайт и, если он заработал, создайте новый каталог, обязательно с именем plugins, чтобы система его распознала. Затем по одному переносите туда дополнения, пока не найдёте то, которое снова вызовет ошибку.
Помощь провайдера
Когда не получается исправить ошибку 500 своими силами, обращайтесь к своему провайдеру и пытайтесь решить проблему сообща.
Что может сделать обычный пользователь
Строго говоря, обычный посетитель сайта исправить ошибку 500 никак не может. Но кое-что сделать всё-таки можно.
Очистите кеш и перезагрузите страницу
Бывает, что ошибка 500 на сайте исчезает сама. Поэтому, когда пользователь видит такую ошибку, он может перейти в настройки браузера и очистить кеш (а заодно и куки), так как пятисотая страница иногда кешируется. В любом случае, очистка кеша всегда полезна. Затем перезагружаем сайт. Возможно, что за прошедшие несколько минут проблема была решена или ошибка исчезла сама собой.
Читайте в блоге:
Сообщите владельцу сайта
Также можно сделать хорошее дело — сообщить владельцу об ошибке на его сайте. На рабочих страницах ресурса обязательно будут контактные данные — в первом экране или же в самом низу страницы, в так называемом футере сайта. А если не работает весь сайт, то можно найти контакты в сохранённой версии сайта в поисковике. Возможно, вы окажетесь тем самым добрым человеком, который первым обратит внимание админа на проблему.