Что такое 500 ошибка сервера (Internal Server Error)?

6 ноября, 2024
Любой, даже самый надежный сервер может испытывать пиковые нагрузки и давать сбои. Проявляется это по-разному. Например, при попытке загрузки страницы сайта на экране возникает странная ошибка 500. Так давайте же разберемся, что она означает?

Содержание статьи




keyboard_arrow_down

Описание ошибки 500

Она появляется, когда возникает внутренний сбой на сервере (перестаёт нормально работать конфигурация или отказывает один из компонентов). Поэтому он не может правильно обработать запросы, отправляемые в виде протоколов HTTP посетителями ресурса. Также она может возникнуть, когда используется неверная версия (конфигурация) PHP или неверно выставлены лимиты/расширения для PHP. Ошибка 500 очень редко возникает сразу у всех пользователей на сервере, обычно это индивидуальная проблема.

Ошибка 500 может появиться когда угодно на любом устройстве и сайте, а также в любом браузере. При этом причиной ошибки не является факт использования устаревшей операционной системы или факт отсутствия интернет-подключения. Также её появление на экране не говорит о том, что сайта больше нет или он не исправен. Всё дело именно в сервере.

Посетитель сайта может увидеть на экране следующие сообщения: “Internal Server Error”, либо же “HTTP error 500”.

Internal Server Error

Описание причин ошибки 500

Чтобы исправить подобную несложную ошибку, нужно знать всё о возможных причинах ее возникновения. Первая - наличие неподдерживаемого директива в файле .htaccess или присутствие неправильного синтаксиса в нём. Именно в этом файле задаются настройки для нормальной работы с сервером Apache.

Также в нём можно корректировать функционирование сайта (например, есть возможность управлять опциями PHP, переадресациями, правами доступа с определенным типом файлов, а также задать отдельные страницы, на которых будут выводиться некоторые ошибки). Правильная работа .htaccess на сервере крайне важна.

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

Третья причина ошибки - плагины начали конфликтовать между собой. Это приводит к возникновению погрешности в программном коде CMS.

Как получить больше информации об ошибке 500?

Способ поиска дополнительных сведений один и тот же, независимо от того, как именно на странице сайта отображается сообщение об ошибке. Отличаются лишь причины появления той или иной ошибки.

Если высвечивается надпись “Internal Server Error”, значит, существуют некие проблемы с файлом .htaccess. Чтобы их определить, следует изменить название этого файла. Делается это с помощью файлового менеджера (он есть у каждого хостинга), либо FTP-клиента. Переименовав файл, вы исправите ошибку. Если же ничего не изменится, значит, проблему необходимо искать через панель разработчика.

Искать ошибку в случае нашего хостинга нужно либо в .htaccess либо в логе error_log, откуда запускается PHP скрипт. Данный лог создаётся автоматически, если есть любые ошибки при выполнении PHP, и именно фатальные ошибки если они есть и провоцируют 500-ю ошибку.

Второй тип сообщения - “HTTP Error 500”. Если у вас на экране такое уведомление, то проблему необходимо искать в скриптах. А при полном отсутствии текста следует воспользоваться инструментами разработчика. Как их открыть? Придерживайтесь следующей инструкции:

  1. Нажмите F12, если ваша операционная система Windows. Пользователям MacOS следует нажать на CMD+OPT+J. Эти действия актуальны для браузера Google Chrome. Если у вас стоит Safari и вы пользуетесь ОС MacOS, то вам нужно немного изменить комбинацию клавиш и нажимать в конце не на “J”, а на “С”.
  2. Есть ещё более простой способ для всех ОС и браузеров - нажмите на мышке правую кнопку и выберите в появившемся окошке пункт “Посмотреть код”.
  3. Откройте вкладку “Сеть”.
  4. Проверьте код, указанный в поле “Статус”.
  5. Затем откройте журнал с записями (логами). Их очень много, поэтому для удобства поиска они классифицированы по типам.
  6. Чтобы посмотреть информацию относительно ошибки 500, нужно запросить у владельца сервера/хостинга записи типа “error_log”.

Запрос этих данных в панели разработчика - это очень распространенная практика. Именно такие действия помогают получить больше информации о проблеме и самостоятельно исправить её.

Причины ошибки 500 и способы её устранения

Процесс устранения ошибки зависит от причин её появления. Рассмотрим их.

Ошибки в CMS

При наличии syntax-ошибок в коде CMS в журнале записей панели разработчика будет указан лог “PHP Parse error: syntax error, unexpected”. Плагин будет функционировать некорректно. При чтении названия лога следует взглянуть на путь, указывающий на проблемную часть кода или на неработающий плагин.

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

Проще всего обратиться в техническую поддержку CMS. Квалифицированные специалисты помогут быстро исправить ошибку.

Файл .htaccess

Синтаксис файла достаточно строгий. При его нарушении ошибка 500 не заставит себя долго ждать. Как исправить эту проблему? Необходимо открыть корневую папку и найти в ней файл .htaccess.

Скопируйте его в буфер обмена или же в предварительно созданную папку на рабочем столе. Затем удалите его из корневой папки. Если все заработало, то нужно в корневую папку добавить файл. Но не скопированный, а из чистого дистрибутива.

Ошибки в скриптах

Подобные ошибки также случаются часто по двум причинам - не хватает текущей оперативной памяти или присутствует нарушение внутри сценария. Информация о недостатке памяти указывается на сервере следующей надписью - “Allowed memory Size”.

Как устраняется нехватка оперативной памяти?

Нужно оптимизировать скрипт и проверить наличие ошибок в его коде. Именно они провоцируют потребность в еще большей оперативной памяти. Если ошибок не обнаружено, нужно обратиться к службе техподдержки. Специалисты поработают над улучшением производительности скрипта.

Есть ещё один вариант устранения нехватки оперативной памяти. Он актуален для сайтов, которые размещены на отдельных серверах с мощными хостингами. Можно попробовать в панели разработчика установить максимальную память на процесс. То есть изменить показатель “memory_limit”.

Скрипт не хочет запускаться - как исправить такую ошибку?

Как уже было сказано выше, подобная причина появления ошибки 500 связана с наличием сбоя в скрипте или с невыполнением назначенной функции. Ключевые ошибки в CGI-скриптах:

  • у каждой строки в конце указан формат “rn” (Windows), вместо “n” (UNIX);
  • права доступа к скрипту не предоставляются;
  • появляются заголовки ответа, не подходящие к скрипту CGI.

Эти ошибки устранить достаточно сложно. Нужна помощь квалифицированных специалистов.

Выводы

Ошибка 500 появляется на страницах любых сайтов, независимо от операционной системы, браузера и устройства. У нее бывает два статуса, по которым и можно определить точную причину возникновения неисправности в работе сервера.

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

Ошибка 500 временная. Она не говорит о том, что сайт перестал навсегда работать и его страницы больше никогда не будут доступны. После устранения причины проблемы ресурс продолжит функционировать в штатном режиме.