Что такое ошибка 500 и когда она возникает

Как исправить 500 internal server error Nginx

Дословно Internal server error означает внутренняя ошибка сервера. И вызвать её могут несколько проблем. Вот основные из них:

  • Ошибки в скрипте на PHP — одна из самых частых причин;
  • Превышено время выполнения PHP скрипта или лимит памяти;
  • Неправильные права на файлы сайта;
  • Неверная конфигурация Nginx.

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

1. Ошибка в скрипте PHP

Мы привыкли к тому, что если в PHP скрипте есть ошибки, то сразу же видим их в браузере. Однако на производственных серверах отображение сообщений об ошибках в PHP отключено, чтобы предотвратить распространение информации о конфигурации сервера для посторонних. Nginx не может отобразить реальную причину ошибки, потому что не знает что за ошибка произошла, а поэтому выдает универсальное сообщение 500 internal server error.

Чтобы исправить эту ошибку, нужно сначала понять где именно проблема. Вы можете включить отображение ошибок в конфигурационном файле php изменив значение строки display_errors с off на on. Рассмотрим на примере Ubuntu и PHP 7.2:

Перезапустите php-fpm:

Затем обновите страницу и вы увидите сообщение об ошибке, из-за которого возникла проблема. Далее его можно исправить и отключить отображение ошибок, тогда все будет работать. Ещё можно посмотреть сообщения об ошибках PHP в логе ошибок Nginx. Обычно он находится по пути /var/log/nginx/error.log, но для виртуальных доменов может настраиваться отдельно. Например, смотрим последние 100 строк в логе:

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

2. Превышено время выполнения или лимит памяти

Это продолжение предыдущего пункта, так тоже относится к ошибкам PHP, но так, как проблема встречается довольно часто я решил вынести её в отдельный пункт. В файле php.ini установлены ограничения на время выполнения скрипта и количество оперативной памяти, которую он может потребить. Если скрипт потребляет больше, интерпретатор PHP его убивает и возвращает сообщение об ошибке.

Также подобная ошибка может возникать, если на сервере закончилась свободная оперативная память.

Если же отображение ошибок отключено, мы получаем error 500

Обратите внимание, что если время ожидания было ограничено в конфигурационном файле Nginx, то вы получите ошибку 504, а не HTTP ERROR 500, так что проблема именно в php.ini

Чтобы решить проблему увеличьте значения параметров max_execution_time и memory_limit в php.ini:

Также проблема может быть вызвана превышением других лимитов установленных для скрипта php. Смотрите ошибки php, как описано в первом пункте. После внесения изменений в файл перезапустите php-fpm:

3. Неверные права на файлы

Такая ошибка может возникать, если права на файлы, к которым обращается Nginx установлены на правильно. Сервисы Nginx и php-fpm должны быть запущены от имени одного и того же пользователя, а все файлы сайтов должны принадлежать этому же пользователю. Посмотреть от имени какого пользователя запущен Nginx можно командой:

Чтобы узнать от какого пользователя запущен php-fpm посмотрите содержимое конфигурационного файла используемого пула, например www.conf:

В моем случае это пользователь nginx. Теперь надо убедится, что файлы сайта, к которым вы пытаетесь обратиться принадлежат именно этому пользователю. Для этого используйте команду namei:

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

Этой командой мы меняем владельца и группу всех файлов в папке на nginx:nginx. Добавить права на чтение для всех пользователей для каталога можно командой chmod. Например:

Далее все должно работать. Также, проблемы с правами может вызывать SELinux. Настройте его правильно или отключите:

Устранение ошибки на стороне серверных скриптов

Также, причиной возникновения ошибки 500 Internal Server Error разработка и тестирование своих скриптов.

Справить с возникшей проблемой может помочь следующее решение:

  • Настройка прав доступа на сервере: не верная настройка прав доступа к папкам и файлам приводит к тому, что сервер выдает код ответа 500 Internal Server Error. Из-за отсутствия доступа к файлу или файлам, не удается запустить скрипт, поэтому возникает ошибка 500. Проверьте, корректно ли проставлены права доступа на папки и файлам, и если это не так, то обязательно выставите верные права доступа, и как следствие, ошибка 500 пропадёт, если в правах доступа заключалась проблема.
  • Превышено время ожидания: истекло время ожидания ответа сервера (PHP или другого скрипта). Так может происходить из-за того, что недоступен определенный ресурс или в коде были допущены ошибки, которые запускают бесконечный цикл.
  • Превышено время ожидания соединения с сервером: если сервер был сильно загружен или перезагружался или просто по тем или иным причинам было потеряно соединение, в таком случае сервер выдает ошибку 500 Internal Server Error. Возможно, если немного подождать, то ошибка исчезнет, так как сервер придет в нормальное свое рабочее состояние (как вариант, после перезагрузки).
  • Ошибки в файле .htaccess: ошибка 500 может появляться в случае, если не веные код был прописан в файле .htaccess.
  • Ошибки в скрипте: если ошибка возникает из-за скрипта, можно запросить подробную информацию об ошибке. В PHP можно включить режим вывода ошибок на экран или вывод в лог-файл. Необходимо прописать в запускающий скрипт PHP файл (как правило это index.php) директиву display_errors. По умолчанию вывод ошибок может быть скрыт, и вы можете данную директиву включить на тот период, пока будете разбираться с возникшей ошибкой 500 Internal Server Error.

Другие причины появления ошибки 500 Internal Server Error

Ошибка 500 может появляться из-за конфликтов в работе с CGI-скриптами. Для этого существует 3 правила, которые могут быть не соблюдены:

  • Каждая строка должна заканчиваться в формате UNIX (n), но не Windows (rn). Чтобы выдержать это правило, необходимо загрузку производить по протоколу FTP, с режимом ASCll.
  • В процессе работы CGI-скрипта могут появляться HTTP-заголовки с неверными ответами. Нужно пересмотреть содержимое системного файла «error log» на наличие ошибок.
  • Цифровое значение для скриптов CGI, файлов и папок должно быть установлено в 0755. Эта запись дает право совершать настройки исключительно владельцу сайта, что является дополнительной мерой безопасности.

Больше способов увидеть внутреннюю ошибку сервера

В Internet Explorer сообщение «Веб-сайт не может отобразить страницу» часто указывает на внутреннюю ошибку сервера HTTP 500. Ошибка 405 Method Not Allowed – это ещё один вариант, но должны найти соответствующее подтверждение в строке заголовка IE.

Когда службы Google, такие как Gmail, испытывают внутреннюю ошибку сервера 500, они часто сообщают о временной ошибке (500) или просто 500.

Когда Центр обновления Windows сообщает о внутренней ошибке сервера, она отображается как сообщение WU_E_PT_HTTP_STATUS_SERVER_ERROR или как код ошибки 0x8024401F.

Если веб-сайт, который сообщает об ошибке 500, работает под управлением Microsoft IIS, вы можете получить более конкретное сообщение об ошибке:

Ошибка 500 Internal Server Error
Код Объяснение
500,0 Произошла ошибка модуля или ISAPI.
500,11 Приложение закрывается на веб-сервере.
500,12 Приложение занято перезагрузкой на веб-сервере.
500,13 Веб-сервер слишком занят.
500,15 Прямые запросы на Global.asax не допускаются.
500,19 Данные конфигурации неверны.
500,21 Модуль не распознан.
500,22 Конфигурация ASP.NET httpModules не применяется в режиме управляемого конвейера.
500,23 Конфигурация ASP.NET httpHandlers не применяется в режиме управляемого конвейера.
500,24 Конфигурация олицетворения ASP.NET не применяется в режиме управляемого конвейера.
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 (от англ. 500 Internal Server Error) — внутренняя ошибка сервера, возникающая во время сбоя веб-сервера или наличия ошибки в серверной части веб-приложения.

HTTP-статус ответа сервера можно подделать как для определенных IP-адресов, так и для всех пользователей веб-приложения. Однако, ошибка 500 internal server error возникает в основном из-за технических неисправностей веб-ресурса или веб-сервера.

Если вы столкнулись с ошибкой 500 на каком-либо сайте и при этом не являетесь его владельцем, я рекомендую выполнить следующие действия:

  • Откройте консоль на компьютере (CMD + Enter) и выполните следующую команду: ping (название домена). Пример: и если обмен пакетами произойдет без потерь — значит вам просто нужно очистить кэш браузера или зайти на сайт с помощью VPN.

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

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

Код HResult 0x80070005

Сообщение об ошибке:

Причина

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

Решение

Удалите фильтр ISAPI, который не является допустимым. Для этого выполните следующие действия:

  1. Нажмите кнопку Начните, нажмите кнопку Выполнить, введитеinetmgr.exe, а затем нажмите кнопку ОК.
  2. В диспетчере IIS разойдитесь, расширйте веб-сайты, а затем <server name> щелкните веб-сайт, который необходимо изменить.
  3. В представлении Features дважды щелкните фильтры ISAPI.
  4. Щелкните правой кнопкой мыши фильтр ISAPI, который необходимо удалить, а затем нажмите кнопку Удалить.

Ошибку 500 Internal Server Error довольно легко устранить

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

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

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

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

Вадим Дворниковавтор-переводчик статьи «500 Internal Server Error: What It Is And How To Fix It»

5. Исправление ошибки 500 внутреннего сервера на вашем сайте

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

Существует множество причин, по которым ваш сайт может показывать errors 500 вашим пользователям, но эти наиболее распространены:

  • Ошибка разрешений. В большинстве случаев ошибка 500 внутренних серверов связана с неправильным разрешением одного или нескольких файлов или папок. В большинстве случаев виновато неправильное разрешение на скрипт PHP и CGI . Обычно они должны быть установлены в 0755 (-rwxr-xr-x).
  • Тайм-аут PHP (PHP Timeout). Если ваш скрипт подключается к внешним ресурсам и тайм-ауту этих ресурсов, может возникнуть ошибка HTTP 500. Правила тайм-аута или лучшая обработка ошибок в вашем скрипте должны помочь, если это является причиной ошибки 500.
  • Ошибка кодирования в .htaccess. Хотя это не так часто, убедитесь, что файл .htaccess вашего сайта правильно структурирован.

Если вы используете WordPress , Joomla или другое управление контентом или систему CMS, обязательно выполните поиск в своих центрах поддержки, чтобы получить более конкретную помощь по устранению ошибки 500 Internal Server Error, также может помочь обновление версии движка.

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

Методы решения внутренней ошибки сервера 500

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

Произвольный php сайт

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

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

Ошибка 500 в WordPress

В вордпрессе internal server error 500 возникает по следующим причинам:

  • Неполадки после обновления ядра сайта
  • Конфликты с плагинами
  • Ошибки в .htaccess
  • Превышено время выполнения скрипта

Неполадки после обновления очень сложно отследить. Именно поэтому всегда делайте бэкап перед обновлением! Это убережет вас от случайного возникновения 500 ошибки. Если бэкапа нет, то попытайтесь его запросить у хостинговой компании (в 99% случаев у них будет бэкап за последние сутки или неделю. Можно восстановиться из него). Если же даже хостер не может отдать вам бэкап, то нужно действовать так:

  • Проверить все более простые варианты: например, ошибку в хтаксес
  • Идти в логи сервера и искать проблемный скрипт
  • Определить, почему он выдает ошибку и исправить её

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

Если же ошибка вызвана конфликтом плагинов, то тут проще: отключите все плагины (либо удалите их с сервера, они отключатся автоматически). И включайте их потом по одному. Так вы легко определите конфликтый.

Ошибка 503

Service Temporarily Unavailable

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

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

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

  • Проверить все компоненты и плагины вашей CMS, отключая их по очереди, и найдите самые тяжёлые или испорченные, при работе которых загрузка сайта замедляется. По возможности откажитесь от таких компонентов или поищите более быстрый аналог.
  • Проверить наличие у вас медленных запросов — в папке logs вашего аккаунта создается файл mysql-slow.log. Информация в этом файле обновляется раз в сутки и содержит только самые проблемные SQL-запросы.
  • Если в PHP-скриптах используются Include-функции, загружающие части движка, расположенные на одном аккаунте, убедитесь, что в них используется локальный путь, а не URL вида «http://…». Наличие URL заставляет сервер делать дополнительный HTTP-запрос — это занимает лишнее время и сильно замедляет загрузку сайта.

2. Большое количество запросов к серверу. Причин возникновения таких запросов несколько:

  • Загружаемый ресурс разбит/содержит ссылки на слишком больше число файлов (картинки, таблицы стилей JS-скрипты), которые подгружаются через отдельные запросы. В этом случае следует объединить ресурсы в один файл, где это возможно.
  • DDoS-атаки, флуды, спамы в комментарии также могут вызывать большое количество запросов. В случае DDoS-атаки необходимо определить ее тип, и, согласно ее уровню, предпринять действия по устранению. Подробнее про DDoS-атаки вы можете прочитать в статье «DDoS-атаки: взгляд со стороны Timeweb».

500 Internal Server Error — что это?

500 — код ошибки, указывающий на проблемы с сервером. Она возникает по различным причинам:

  • некорректные директивы в .htaccess,
  • неверно установленные права к файлам проекта,
  • конфликты с новыми расширениям.

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

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

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

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

О других статус-кодах и ошибках сервера читайте в нашем посте «Как легко проверить код ответа сервера? Понятно о HTTP status code».

Причины кода ошибки 500 internal server error

Сообщение об ошибки на сайте с HTTP-статусом 500, как мы уже знаем — связано с тем, что программное обеспечение сервера либо не работает, либо работает, но один или несколько его компонентов дают сбои в серверной части веб-приложения на клиентские запросы.

В связи с этим, в первую очередь нужно провести определенную диагностику как сайта, так и сервера для выявления истинной причины возникновения ошибки 500 internal server error.

Понятно, но я не программист, — как мне решить эту проблему?

Вам уже известно, что означает ошибка 500 и то, что ее очень легко исправить, поэтому даже если вы не обладаете соответствующими знаниями веб-разработки — вы без труда ее устраните. К тому же, я опишу причины возникновения Error 500 самыми простыми словами.

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

#1. Неправильно настроенный файл .htaccess

Одна из самых распространенных причин возникновения 500 internal server error — это неправильно настроенный файл .htaccess. Он предназначен для изменения конфигурации и настройки веб-сервера Apache, поэтому любая ошибка в нем приведет к падению сайта.

Чтобы исправить ошибку 500 — откройте файл .htaccess и тупо закомментируйте весь код (Ctrl + A и Ctrl + ). Затем перейдите на сайт и посмотрите — пропала ошибка или нет. Если 500 ошибка сервера никуда не пропала, то тогда переходим к следующему пункту.

#2. Технические работы на веб-сервере

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

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

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

#3. Тайм-аут при получении внешнего ресурса

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

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

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

#4. Тайм-аут при выполнении PHP-скриптов

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

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

Если вы используете какую-нибудь CMS-систему, типа WordPress или OpenCart, и данная ошибка связана именно с тайм-аутом при выполнении «тяжелых» PHP-скриптов, то следует либо сменить шаблон, либо самостоятельно оптимизировать проблемные участки кода.

#5. Устаревший кэш на стороне клиента

Очень редко случается, что внутренняя ошибка сервера связана с устаревшим кэшом на стороне клиента. Честно говоря, я сам не понимаю то, как это возможно, но тем не менее — это факт. Для решения данной проблемы знания веб-разработки совсем не требуются.

Просто нажмите Ctrl + Shift + Delete, после чего откроется новая вкладка в браузере, на которой вам нужно отметить определенные флажки для очистки кэша браузера и файлов cookie. Иногда это может сработать, хотя я не особо в это верю.

Если вы все равно не понимаете, как очистить кэш в браузере или вам просто по каким-то причинам лень это понимать — тогда просто зайдите на свой сайт с другого браузера и вполне возможно, что ошибка 500 internal server error исчезнет с вашего веб-приложения.

Код HResult 0x8007000d

Сообщение об ошибке:

Причина

Эта проблема возникает из-за того, что модуль ISAPIModule отсутствует в списке модулей для веб-сайта. Модуль ISAPIModule находится в этом расположении: drive:\Windows\System32\inetsrv\isapi.dll .

Решение

Добавьте модуль ISAPIModule в список модулей для веб-сайта. Для этого выполните следующие действия:

  1. Нажмите кнопку Начните, нажмите кнопку Выполнить, введитеinetmgr.exe, а затем нажмите кнопку ОК.
  2. В диспетчере IIS разойдитесь, расширйте веб-сайты, а затем <server name> щелкните веб-сайт, который необходимо изменить.
  3. В представлении Features дважды щелкните модуль.
  4. В области Действия нажмите кнопку Добавить родной модуль.
  5. В диалоговом окне Добавить родной модуль щелкните, чтобы выбрать окно IsapiModule, а затем нажмите кнопку ОК.

Отключите тему оформления или плагин, вызывающие ошибку

Если вам не удается войти в панель администрирования WordPress для отключения некорректной темы оформления или плагина, придется действовать обходным путем. Способ прост, хотя и займет некоторое время. Понадобится FTP-клиент для прямого доступа к файлам сайт. Скачайте, например, FileZilla, введите в параметрах соединения адрес сайта, логин и пароль, подключитесь к серверу – файлы вашего сайта будут в окне справа.

Найдите папку под названием plugins и переименуйте ее в plugins_deactivate. Все плагины будут отключены. Перезагрузите сайт – если ошибка исчезла, значит, причина была в плагине. Теперь вы можете войти в панель администрирования. Войдите и начните активировать плагины по одному. Перезагружайте сайт после активации каждого плагина – так вы обнаружите проблемный. Удалите его, найдите ему замену или уведомите разработчика о проблеме, с которой вы столкнулись. Не забудьте вернуться в FTP-клиент и переименовать директорию обратно, чтобы исправные плагины стали активными.

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

Запись лога в файл

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

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

Я пишу логфайл с именем в каталоге logs, который я создаю, если он еще не существует.

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

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

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

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

Ошибка 500 Internal Server Error — устранение на стороне серверных скриптов

Другой причиной по которой может возникнуть ошибка 500 Internal Server Error может стать разработка и тестирование собственных скриптов.

Чтобы справиться с такой ошибкой, попробуйте следующие решения:

  • Настройка прав на сервере: часто неверная настройка прав доступа к файлу или папке приводит к тому, что сервером выдаётся ошибка 500 Internal Server Error. Из-за того, что ему не удаётся запустить скрипт. Выясните, какие права должны быть настроены, и выставьте их соответствующим образом.
  • Превышено время ожидания: возможно, истекло время ожидания ответа от PHP или другого серверного скрипта. Это происходит из-за того, что недоступен определённый ресурс или коде была допущена ошибка, запускающая бесконечный цикл.
  • Превышено время ожидания соединения с сервером: если сервер был занят, перезагружался или потерял соединение, скрипт может выдать ошибку 500 Internal Server Error. Возможно, в следующий раз ошибки не будет. Но если ошибка появляется при тестировании, велика вероятность того, что она встретится и пользователям.
  • Ошибки в файле .htaccess: в некоторых случаях ошибку 500 может вызывать код, прописанный в файле .htaccess.
  • Ошибки в скрипте: если ошибку выдаёт скрипт, можете запросить у него подробную информацию об ошибке. К примеру, в PHP можно включить вывод ошибок на экран или в лог-файл, добавив директиву display_errors. По умолчанию среда выполнения может скрывать ошибки, но это не очень удобно для отладки программы.

Заключение

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

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

Наталья Кайдаавтор-переводчик статьи «How To Fix The 500 Internal Server Error On Your WordPress Site?»

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: