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

Мануалы
8Нравится
Комментарии
Поделиться
Что такое 500 ошибка сервера, и как её исправить

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

  • 1. 500 Internal Server Error — что это?
  • 2. Почему появляется ошибка 500 Internal Server Error
  • 3. Отображается 500 Internal Server Error — как исправить?
  • Подводим итоги

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

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

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

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

Предупреждение о 500 ошибке на сайте

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

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

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

2. Почему появляется ошибка 500 Internal Server Error

2.1. Серверные ошибки

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

Как проанализировать логи ошибок в панели управления хостингом

Выберите в логах вкладку «Error» и необходимую дату, чтобы просмотреть отчёт за определённый день, или укажите диапазон времени.

Как посмотреть в логах отчёт за определённый день

Ещё один способ обнаружить источник ошибку 500 Internal Server Error — провести техническую проверку, которая доступна в разделе настроек.

Как обнаружить ошибку 500 Internal Server Error в логах

2.2. Некорректный файл .htaccess

Зачастую error 500 отображается из-за неправильных директив в .htaccess. Любая некорректная команда или лишний символ могут вызвать сбой работы ресурса. Узнать, что ошибка именно в .htaccess, можно при помощи простого теста. Зайдите в панель управления хостинг-провайдера, перейдите в раздел «Файл-менеджер», чтобы попасть в корневой раздел проекта, и смените имя .htaccess на другое, например, test.

Как исправить некорректный файл .htaccess

Если проект заработал с неактивным файлом .htaccess, то проблема именно в нём. В такой ситуации внимательно проверьте файл, а если это вызывает затруднения, воспользуйтесь онлайн-тестером. Скопируйте содержимое .htaccess и вставьте в соответствующее поле, укажите домен, обязательно начав его с http://, и нажмите «Test».

Как проверить файл .htaccess в онлайн-тестере

В отчёте строки с ошибками будут выделены красным цветом.

Ошибки в файле .htaccess, обнаруженные с помощью онлайн-тестера

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

Также ошибку могут вызывать комментарии, размещённые в .htaccess не в начале строки. При добавлении комментариев в середине строки после любых директив возникнет внутренняя ошибка 500, поэтому размещайте символ #, открывающий комментарий, только в начале строки.

Комментарии, которые могут вызвать ошибки в .htaccess

Ещё одна потенциальная причина ошибки 500 — некорректный синтаксис директивы FilterProvider, отвечающей за сжатие контента для ускорения работы. Эта директива включает сжатие на основании заголовков Content-Type, а на хостинге сжимать контент может Nginx, и до Apache такие запросы не дойдут. Следует также учитывать, что для различных версий Apache используется разный синтаксис.

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

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

Чтобы узнать, какие права доступа установлены, откройте в файл-менеджере необходимый документ и зайдите через контекстное меню в его свойства либо раздел «Права доступа».

Как отредактировать права доступа к файлам

Допустимые права доступа к каталогам и файлам — 640 или 755.

2.4. Ошибки в Perl и Python скриптах

Иногда 500 ошибка возникает при выполнении скриптов. В данной ситуации нужно проверить, выполняются ли указанные условия:

  • Каталоги, в которых размещены скрипты, как и сами файлы, имеют права доступа 755, т.е. открыты для записи только владельцу.
  • Загрузка скриптов на сервер происходит по FTP, с использованием режима ASCII.
  • В начале файла указан корректный путь к интерпретатору для обработки скрипта, после этого нет спецсимволов, для перевода строки используется \n.
  • Если скрипт что-то выводит в браузер, в начале добавлен заголовок Content-Type: text/html и одна пустая строка.
  • Заканчивает файл также пустая строка.

2.5. Медленная скорость работы PHP-скриптов

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

2.6. Конфликты после обновлений и установки плагинов

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

2.7. Устаревшая версия PHP

Устаревшие версии PHP 5.6 и 7.0 не получают обновления безопасности, они работают медленнее, и у них могут возникать проблемы с различными плагинами и скриптами. Помимо этого, ресурсы с устаревшей версией PHP хуже ранжируются. Проверить текущую версию можно на хостинге в разделе «Настройки» — «Настройка PHP».

Как проверить версию PHP на хостинге

Быстро проверять коды ответа сервера страниц сайта вам поможет Netpeak Spider — инструмент для регулярного SEO-аудита, быстрого поиска ошибок, системного анализа и парсинга сайтов.

Чтобы получить доступ к Netpek Spider, достаточно просто зарегистрироваться, скачать и установить программу 😉

Зарегистрироваться и установить программу

3. Отображается 500 Internal Server Error — как исправить?

3.1. Редактирование файла .htaccess

Если источник ошибки в .htaccess, поочерёдно закомментируйте перечисленные директивы, добавив перед ними #:

  • Options. Иногда удаление этой директивы устраняет error 500. Если проблема не исчезла, попробуйте следующий вариант.
  • Директивы, меняющие настройки PHP, — php_value, php_flag.
  • Параметр +ExecCGI.
  • -MultiViews.
  • AddHandler.

Ещё один альтернативный вариант — замена директивы Options +FollowSymLinks на Options +SymLinksIfOwnerMatch, а Options All -Indexes — на Options -Indexes.

3.2. Исправление прав доступа

При некорректно установленных правах поменяйте их на 640 либо восстановите настройки по умолчанию. В зависимости от хостинг-провайдера алгоритм действий может различаться, найдите соответствующие настройки. Например, у провайдера «Украина» предлагается восстановить права доступа ко всем файлам и папкам в разделе «Установка CMS».

Как восстановить права доступа к файлам

Можно также восстановить настройки по умолчанию с помощью редактирования прав доступа конкретного файла.

Как восстановить резервную копию сайта

3.3. Исправление проблем с расширениями или обновлениями

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

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

Подводим итоги

  1. 500 внутренняя серверная ошибка — это достаточно распространённая проблема для ресурсов на любых CMS, а также проектах, созданных с нуля.
  2. Чаще всего причины проблем кроются в директивах .htaccess, неправильно установленных правах доступа к каталогам и файлам сайта, медленно работающих PHP-скриптах, конфликтах с новыми расширениями.
  3. Для исправления ошибки просмотрите логи сервера, исправьте некорректный синтаксис в .htaccess, проверьте время выполнения скриптов, отключите новые плагины. Если эти действия не устранили ошибку 500, восстановите резервную копию сайта.
  4. Чтобы избежать подобных неприятностей, периодически проводите техническую проверку ресурса, оптимизируйте скрипты, делайте перед любыми обновлениями бэкапы и будьте внимательны при изменении конфигурационных файлов.
  5. Если вы испробовали все способы, изложенные в статье, а ошибка так и не исчезла, напишите в техподдержку хостинга. Расскажите, после каких действий появились проблемы, и что именно вы предпринимали, чтобы их решить.

А вы часто сталкиваетесь с 500 ошибкой? Как её исправляете? Оставляйте свои ответы в комментариях 😉