Как исправить внутреннюю ошибку сервера HTTP 500?

Коды состояния HTTP предоставляют информацию о том, был ли онлайн-запрос успешным, а если нет, то в чем заключается ошибка. Но сообщения об ошибках не всегда понятны. Особенно это касается «500 Internal Server Error». Это сообщение указывает на то, что при подключении к серверу произошла ошибка и доступ к запрашиваемой странице невозможен. Однако оно не может точно сказать, почему это произошло. К счастью, существуют различные методы поиска причины. Мы укажем на типичные источники ошибок и дадим советы, что делать, если вы столкнулись с HTTP-ошибкой 500.

Что означает внутренняя ошибка сервера?

Используя коды состояния, веб-сервер сообщает браузеру интернет-пользователя (клиенту), был ли запрос (т.е. доступ к веб-сайту) успешным или нет. Если браузер получает код состояния 200, он знает, что все прошло успешно. Однако пользователь никогда не видит этого сообщения, так как вместо него появляется запрашиваемый контент. С кодами состояния 400 и 500 дело обстоит иначе. Если первые указывают на ошибки клиента, то вторые связаны с сервером. Внутренняя ошибка сервера 500 — это общий код состояния для ошибок сервера. Поэтому с первого взгляда невозможно определить, где на самом деле находится ошибка. Пользователь знает только, что сервер сообщил о неожиданной ошибке.

Однако если на сервере установлены Microsoft Internet Information Services (Microsoft IIS), то код ошибки будет указан. Десятичные знаки более подробно указывают на причину ошибки:

  • 500.0: Произошла ошибка модуля или ISAPI.
  • 500.11: Приложение завершает работу на веб-сервере.
  • 500.12: Приложение занято перезапуском на веб-сервере.
  • 500.13: Веб-сервер слишком занят.
  • 500.15: Прямые запросы к файлу global.asax запрещены.
  • 500.19: Конфигурационные данные недействительны.
  • 500.21: Модуль не распознан.
  • 500.22: Конфигурация ASP.NET httpModules не применяется в режиме Managed Pipeline.
  • 500.23: Конфигурация ASP.NET httpHandlers не применяется в режиме Managed Pipeline.
  • 500.24: Конфигурация ASP.NET impersonation не применяется в режиме Managed Pipeline.
  • 500.50: Произошла ошибка перезаписи при обработке уведомления RQ_BEGIN_REQUEST. Произошла ошибка конфигурации или выполнения входящего правила.
  • 500.51: При обработке уведомления GL_PRE_BEGIN_REQUEST произошла ошибка перезаписи. Произошла ошибка глобальной конфигурации или выполнения глобального правила.
  • 500.52: Произошла ошибка перезаписи при обработке уведомления RQ_SEND_RESPONSE. Произошла ошибка выполнения исходящего правила.
  • 500.53: Во время обработки уведомления RQ_RELEASE_REQUEST_STATE произошла ошибка перезаписи. Произошла ошибка выполнения исходящего правила. Правило настроено на выполнение до обновления выходного пользовательского кэша.
  • 500.100: Внутренняя ошибка ASP.

Каковы причины ошибки 500?

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

  • Ошибка разрешения: Разрешения основных файлов и папок установлены неправильно.
  • Таймаут PHP: Скрипт пытается получить доступ к внешнему ресурсу и испытывает тайм-аут.
  • Неправильный код в .htaccess: Структура в файле .htaccess может быть неправильной.
  • Ошибка в синтаксисе или коде в CGI/Perl скриптах: В некоторых случаях скрипты некорректны. В частности, пути могут быть неправильно выровнены.
  • Ограничение памяти PHP: Процесс превышает объем памяти и поэтому не может быть выполнен правильно.

В случае сайтов WordPress или других систем управления контентом причиной также может быть установка неисправного или несовместимого расширения. Плагины и темы — особенно от сторонних поставщиков — могут влиять на работу всего сайта.

Как операторы сайтов могут исправить внутреннюю ошибку 500 Internal Server Error?

Посетители вашего сайта видят только ошибку 500 сервера? Как оператор, вы должны решить эту проблему быстро, потому что это не только отпугнет ваших посетителей, но и может означать, что Google понизит ваш рейтинг. Прежде чем предпринимать какие-либо действия, сначала проверьте, работает ли ваш сервер. Если нет, как можно скорее свяжитесь с вашим хостинг-провайдером.

Если возникла внутренняя ошибка, первым шагом будет просмотр файлов журнала. Для Linux-серверов коллекция сообщений об ошибках должна находиться по адресу /var/log/httpd/error_log. Имеет смысл перезагрузить сайт, чтобы воспроизвести код HTTP-ошибки 500, и понаблюдать за тем, как создается файл журнала. Это поможет вам довольно быстро найти источник ошибки. Также обратите внимание на то, какие изменения были сделаны незадолго до этого. Во многих случаях причиной сообщений об ошибках являются неправильно запрограммированные или несовместимые плагины.

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

  • Чтение (r)
  • Запись (w)
  • Выполнить (x)

Эти разрешения могут быть назначены для трех различных типов пользователей:

  • Владелец файла
  • Группа пользователей
  • Все остальные

Права указываются либо в виде сокращений r, w и x, либо в виде соответствующих числовых значений: 4 для чтения, 2 для записи и 1 для выполнения. Они добавляются для каждого типа пользователей и указываются последовательно: rwxr-xr-x (rwx для владельца, r-x для группы и r-x для всех остальных) или 755. Эта конфигурация (755) должна быть настройкой по умолчанию. Если назначение разрешений установлено иначе, может возникнуть ошибка. Вы можете изменить это с помощью команды:

chmod 755 filename

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

chmod 777 filename

Но используйте эту настройку только для обнаружения проблемы. Любому пользователю разрешено переписывать файл, что, по понятным причинам, представляет собой риск для безопасности.

Далее проверьте (если распределение прав не привело к появлению сообщения об ошибке), правильно ли выполняются ваши сценарии. Иногда ошибки возникают из-за того, что файлы скриптов были перемещены, переименованы или удалены. Также проверьте файл .htaccess: даже синтаксическая ошибка, какой бы маленькой она ни была, может вызвать внутреннюю ошибку сервера. Не менее распространенной ошибкой является неправильное форматирование файла .htaccess. Он должен быть создан в формате ASCII или ANSI, а не в Unicode. Поэтому пишите файл в текстовом редакторе, таком как Notepad, Notepad++ или Sublime Text, а не в программе обработки текстов, например, Microsoft Word. Чтобы проверить, является ли этот файл причиной ошибки, вы можете временно переименовать его и перезагрузить веб-сайт. Теперь сервер не будет обращаться к .htaccess при загрузке сайта. Если сообщение об ошибке больше не появляется, можно восстановить файл или создать новый.

Тайм-аут также может привести к появлению сообщения об ошибке. В этом случае это не ошибка веб-сервера, а скорее прерванное соединение с внешним источником. Настроены ли PHP-скрипты на вашем сайте на доступ к ресурсам с других серверов? Возможно, ресурс больше недоступен или связь с сервером прервана по какой-то другой причине. Один из способов устранить этот источник ошибок — это, конечно же, не делать свой сайт зависимым от внешних ресурсов. Если это невозможно, вы можете увеличить временной лимит вашего скрипта. Также имеет смысл реализовать эффективную обработку ошибок, чтобы ошибки в PHP-скрипте обнаруживались более точно.

Может ли быть так, что память перегружена? Лимит памяти определяет, сколько памяти может использовать процесс. Если требуется больше оперативной памяти, чем доступно, это может привести к внутренней ошибке сервера. В качестве временного решения можно увеличить лимит. Для этого добавьте в php.ini команду, подобную этой:

memory_limit = 512M

В данном примере вы установите объем предоставляемой памяти на 512 МБ. Обратите внимание, однако, что ваш хостинг-провайдер разрешит вам только определенный лимит PHP-скриптов в рамках заказанного вами пакета. Если вы введете большее значение, веб-сервер его проигнорирует. Увеличение лимита — лишь временное решение: как только ваш сайт снова заработает, следует искать причину высокого использования оперативной памяти. Существует большая вероятность того, что ошибка может быть найдена в коде вашего сайта.

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

Совет .

У IONOS также есть страница состояния, на которой клиенты хостинг-провайдера информируются о текущих проблемах.

Как интернет-пользователи должны реагировать на HTTP-ошибку 500?

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

Примечание

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

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

Если «500 Internal Server Error» по-прежнему отображается, у вас просто нет другого выбора, кроме как ждать, пока оператор сайта решит проблему. Однако есть небольшая хитрость, которую вы можете использовать, чтобы получить доступ к содержимому сайта. Если вы не зависите от последнего состояния (функционирующей) страницы, вы можете обратиться к кэшу Google. Если вы введете в строку поиска Google команду cache:, а затем соответствующий URL, вы сможете получить доступ к более ранней — надеюсь, еще работающей — версии сайта. Однако на самом деле вы не будете просматривать страницу, вы будете перемещаться только по копии на сервере Google.

Если вам нужно вернуться еще дальше в прошлое, возможно, стоит заглянуть в Wayback Machine. Там иногда можно найти старые версии сайтов, которым уже несколько десятилетий.

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

Оцените статью
cdelat.ru
Добавить комментарий