Бесплатно по России

Работаем с 10:00 до 21:00 (без выходных)

Онлайн заявка

#

Что такое ошибка 500 и как ее исправить

Редакция Appfox

Редакция Appfox

Время чтения: 11 минут

Ошибка 500 Internal Server Error возникает, когда сервер не может достоверно определить, почему он не в состоянии обработать поступивший от пользователя запрос. Сайт становится недоступным для посетителей и для поисковых роботов. Полностью теряются трафик и конверсии. Ситуация для бизнеса критическая. Как ее исправить - расскажем в статье.

Что может стать причиной

  1. Запрет доступа.

Иногда при переезде на новый хостинг или расширении структуры ресурса вебмастера забывают открыть доступ к файлам и каталогам на сервере.

  1. Ошибки в .htaccess.

Из-за неправильно прописанных директив в .htaccess. у web-сервера Apache возникают проблемы с корректным прочтением файлов сайта.

  1. Некорректное расширение.

Обычно эта проблема касается PHP и CGL скриптов. У них может быть неправильное расширение или устаревшая, неподдерживаемая версия.

  1. Превышение времени ожидания исполнения скрипта.

Ошибка возникает, если истекает тайм-аут обработки внешних PHP.

  1. Нехватка выделенной памяти.

Большинство хостингов лимитируют объем оперативной памяти на исполнение скриптов.

  1. Неправильные настройки CMS.

Некоторые плагины систем управления сайтом - особенно это касается WordPress и Joomla - могут вызывать ошибку 500 из-за отсутствия обновлений или несовместимости.

Как диагностировать

Необходимо открыть файл “error.log”. Для этого можно воспользоваться клиентом FileZilla или панелью управления хостингом/VPS.

Как диагностировать ошибку 500

В error.log будет доступен детальный отчет об ошибке. Сайты, работающие на серверах Microsoft IIS, выдают более точный код ошибки. Например, 500,19 - “Данные конфигурации неверны”.

Способы исправления

Порядок устранения ошибки зависит от природы ее возникновения.

Неверный код в .htaccess

Проверить, влияют ли строки в файле на работу ресурса, можно через два пути:

  • скопировать документ на компьютер и удалить его с сервера;
  • переименовать в test или дать любое другое название;

Если после этого ошибка 500 устранится, необходимо найти некорректные директивы, ее вызывающие.

Можно сделать это вручную. Для этого:

  • комментируем все строки кода, кроме первой;
  • обновляем файл на сервере;
  • проверяем работоспособность файла.

Если ошибка не устранена, проделываем перечисленные действия последовательно с каждой строкой в коде. При отсутствии ошибки проверяем правильность написания незакомментированной директивы.

Чтобы не тратить время, для начала диагностику .htaccess можно провести с помощью автоматического тестировщика - например, онлайн-сервиса htaccess test. Для проверки кода нужно ввести в окно содержимое файла и указать адрес сайта. Тестировщик выдаст отчет, в котором выделит красным некорректные директивы.

Иногда строки оказываются неверными из-за незаметной замены латинских букв на русские - чаще всего - “с”. Обнаружить и исправить проблему можно через сервис проверки орфографии text.ru - он покажет неправильные символы. Вам останется только исправить их и перезалить документ.

Отсутствуют права доступа

Для каталогов и файлов существует несколько уровней доступа:

  • чтение - пользователь может просматривать содержимое файла или папки;
  • запись - пользователь может создавать, удалять и редактировать файлы в указанной папке;
  • исполнение - пользователь может запускать обработку скриптов.

Обычно для файлов выставляют числовое значение доступа “644”, для папок и директорий - “755”.

Параметр 644 означает, что владелец ресурса может читать, записывать и редактировать файлы, а остальные пользователи - только читать. 755 - владелец имеет полный доступ, а пользователям разрешено чтение файлов и исполнение скриптов. Редактируются права через хостинг или бесплатную клиентскую программу FileZilla.

Исправление ошибки 500 через бесплатную клиентскую программу FileZilla
  1. Входим в корневую директорию сервера, введя необходимые учетные данные.
  2. Если нужно загрузить на сервер новые файлы или папки, перетаскиваем их с локального компьютера.
  3. Включаем отображение скрытых файлов.
  4. Выделяем интересующие объекты. В контекстном меню выбираем пункт “Права доступа к файлу…”. В открывшемся окне вводим необходимое числовое значение или отмечаем галочками соответствие категорий прав и групп пользователей.

Иногда для обновления доступов требуется перезагрузить физический сервер, на который загружен сайт.

Медленная работа скриптов

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

Второй вариант - увеличение времени, отведенного на обработку. Но эта операция доступна только владельцам выделенных серверов. На виртуальном хостинге расширить оперативное время не получится.

Устаревший PHP

Версию и режим работы PHP можно обновить через хостинг-панель. Конкретные действия зависят от того, какой менеджер для управления файлами вы используете.

Некорректные CGI-скрипты

Скрипты CGI чаще всего используются при взаимодействии пользователя с веб-страницей - отправке форм, комментариев, оценок. Второе применение - сбор данных о пользователях, то есть те самые cookies.

В CGI могут возникать различные ошибки.

  1. Неверный формат окончания строк.

Для серверов, работающих под управлением систем Unix, правильным окончанием строки будет символ “\n”. Для Windows-платформ верный символ - “\m”. Проверить табуляцию можно с помощью специальных реакторов - например, Notepad++.

  1. Некорректные права доступа.

Как говорилось ранее, верное числовое значение доступа для исполнительных файлов - 755.

  1. Неправильные HTML-заголовки.

Информацию об ошибках в заголовках можно проверить в файле ‘error.log’.

Нехватка выделенной памяти

При превышении лимита оперативной памяти, установленной хостингом, стоит предпринять следующие действия.

  1. Проверка работоспособности скриптов.

Необходимо скачать файл конфигурации php.ini на компьютер и проаудировать его на наличие ошибок. Во время тестирования необходимо включить следующие функции:

  • error_reporting = E_ALL
  • display_errors = On
  • display_startup_errors = On

После активации этих команд при запуске файла будут выводиться все репорты об ошибках.

  1. Изменение настроек.

Если ресурс расположен на VPS сервере, можно скорректировать параметр memory_limit в файле конфигурации. Узнать оптимальное значение лимита можно только опытным путем, через обновление php.ini и проверку ответа сайта.

  1. Обращение в техподдержку.

Если код скрипта оптимизирован, но ошибка 500 не исчезает, стоит обратиться в техническую поддержку хостинга.

Ошибки, связанные с CMS

Часто проблемы возникают из-за плагинов или тем, используемых системой управления сайта - особенно это касается CMS WordPress. Схема действий в таком случае следующая.

  1. Проверить файл .htaccess и, если ошибка возникает из-за него, временно запретить запись в него всем пользователям, прописав параметр доступа “644”.
  2. Изменить используемую тему, чтобы проверить ее работоспособность.
  3. Деактивировать плагины. Действовать придется методом перебора, последовательно отключая каждый установленный плагин, пока ошибка не будет устранена.
Ошибки 500, связанные с CMS
  1. Расширить лимит оперативной памяти. В конец файла конфигурации wp.config.php добавить строку define(‘WP_MEMORY_LIMIT’, ’64M’).

Как исправить ошибку 500 со стороны пользователя

Иногда корень проблемы кроется не в сервере или html коде сайта, а в устройстве/браузере пользователя. В этом случае можно:

  • перезагрузить страницу - через иконку в браузере или кнопку F5 на клавиатуре;
  • почистить кэш и cookies - чтобы прогружалась свежая версия страницы, а не сохраненная (в которой могла быть ошибка);
  • проверить браузер на вирусы - особенно если ошибка 500 возникает часто и на разных ресурсах. Вредоносные программы могут замедлять или обрывать связь с сервисом;
  • проверить актуальность версии браузера и ОС;
  • обратиться к владельцу ресурса, если вы думаете, что он еще не знает о возникшей проблемы с его сайтом;
  • просто подождать - скорее всего, неисправность скоро будет устранена.

Заключение

Ошибка 500 связана с невозможностью сервера обработать команды, поступающие от браузера пользователя. Она может возникать из-за некорректных директив в файле .htaccess или PHP/CGI скриптах, нехватки оперативной памяти для обработки скрипта, превышения тайм-аута при исполнении PHP.

Диагностировать и устранять ошибку рекомендуется с помощью специальных сервисов. В первую очередь необходимо проверять файлы конфигурации, директивы .htaccess и плагины CMS.