Что такое ошибка 500 и когда она возникает
Владельцы сайтов, те, кто занимаются их созданием, и обычные пользователи интернета периодически сталкиваются с различными ошибками на сайтах. Одной из них является та, что обозначена в названии статьи. Поговорим о том, что это за ошибка 500, и как ее исправить.
Где можно встретить ошибку
Вы можете увидеть ошибку на любом веб-ресурсе, браузере и устройстве. Она не связана с отсутствием интернет-соединения, устаревшей версией операционной системы или браузера. Также не говорит о том, что сайта не существует, или он больше не работает. Она означает, что сервер не может обработать запрос к сайту, на странице которого вы находитесь. При этом сервер не сообщает точно, что именно пошло не так.
Есть несколько причин, из-за которых вы можете увидеть такую ошибку (о них детально чуть позже), и отображаться она может по-разному:
Если вы решили купить что-то в любимом интернет-магазине, но увидели на сайте ошибку 500, не стоит сильно огорчаться. Ошибка лишь сообщает о том, что вам нужно подождать, пока она будет исправлена, и сайт заработает в полную силу.
Почему возникает ошибка
Нам уже известно, что ошибка возникает, когда серверу не удается обработать запрос к сайту. Из-за этого пользователи не могут попасть на сайт, а поисковые системы полноценно с ним работать. Очевидно, что ошибка нуждается в исправлении. Если вы не просто посетитель сайта, а имеете к нему прямое отношение, то вам предстоит справиться с этой задачей. Перво-наперво необходимо определить, почему вообще появилась ошибка.
Вот основные причины ошибки 500:
- неверный синтаксис файла .htaccess — это файл, в котором можно задавать настройки для работы с веб-сервером Apache и вносить изменения в работу сайта (управлять различными перенаправлениями, правами доступа к файлам, опциями PHP, задавать собственные страницы ошибок и т.д.).
Узнать больше о файле .htaccess можно в статье «Создание и настройка .htaccess». - ошибки в скриптах сайта, то есть сценариях, созданных для автоматического выполнения задач или для расширения функционала сайта
- нехватка оперативной памяти при выполнении скрипта
- ошибки в коде CMS — программы, которая помогает создать сайт и управлять его содержимым
Как получить больше данных о причине ошибки
Что означает ошибка 500, мы теперь знаем. Когда она перестала быть таким загадочным персонажем, не страшно копнуть глубже — научиться определять причину ошибки. В некоторых случаях это можно сделать самостоятельно, и обращаться за помощью к профильному специалисту не понадобится.
Как вы видели несколькими абзацами выше, отображение ошибки бывает разным. Ее внешний облик зависит от того, чем она вызвана. Самые распространенные причины (некорректную настройку файла .htaccess и неполадки в скриптах сайта) можно распознать по тексту ошибки или внешнему виду страницы.
Если есть проблемы с файлом .htaccess, на ошибку 500 укажет сообщение Internal Server Error. Убедиться, что .htaccess является корнем проблемы, поможет следующий прием: переименуйте файл .htaccess, например, добавив единицу в конце названия. Это можно сделать с помощью FTP-клиента (мне нравится FileZilla, он удобен в использовании) или файлового менеджера на вашем хостинге. В Timeweb такой есть, с ним довольно просто работать. После проверьте доступность сайта. Если ошибка больше не наблюдается, вы нашли причину.
Когда проблема связана со скриптами сайта, скорее всего, вы увидите сообщение HTTP ERROR 500 или пустую страницу. Во втором случае стоит учесть, что отсутствие содержимого сайта не всегда указывает на внутреннюю ошибку сервера 500. Узнаем, что скрывается за пустой страницей, обратившись к инструментам разработчика. Эта панель доступна в браузере, она позволяет получить информацию об ошибках и другие данные (время загрузки страницы, html-элементы и т.д.).
Как открыть панель разработчика:
- нажмите клавишу F12 — способ актуален для большинства браузеров на Windows
- используйте сочетание клавиш Cmd+Opt+J — в Google Chrome на Mac OS
- примените комбинацию Cmd+Opt+C — в Safari на Mac OS (перед этим включите «Меню разработки» в разделе «Настройки» -> «Продвинутые»).
Откройте вкладку «Сеть» (или «Network») и взгляните на число в поле «Статус». Код ответа об ошибке 500 — это соответствующая цифра:
Более детальную диагностику можно провести с помощью логов. Простыми словами: лог — это журнал, в который записывается информация об ошибках, запросах к серверу, подключениях к серверу, действиях с файлами и т.д. Как вы видите, данных в логи записывается немало, поэтому они разделены по типам. За сведениями о нашей ошибке или других можно обратиться к логам ошибок (error_log). Обычно такие логи предоставляет служба поддержки хостинга, на котором размещен сайт. В Timeweb вы можете включить ведение логов и заказать необходимые в панели управления. Разобраться в полученных логах поможет статья «Чтение логов».
Как устранить ошибку
Обогатившись знаниями об ошибке соединения с сервером, поговорим о том, как ее исправить. Вернемся к популярным причинам этой проблемы и рассмотрим некоторые способы решения.
Ошибки в файле .htaccess
У этого файла довольно строгий синтаксис, поэтому неверно написанные директивы (команды) могут привести к ошибке. Попробуйте поочередно удалить команды, добавленные последними, и проверьте работу сайта.
Также найти проблемную директиву можно с помощью логов ошибок. На ошибку в директиве обычно указывает фраза «Invalid command». Информацию о верном написании директивы или способе исправления ошибок в .htaccess вы можете найти в интернете. Не нужно искать, почему выдает ошибку 500, просто введите в строку поиска название нужной команды или текст ошибки, полученной из логов.
Ошибки в скриптах сайта
1) Скрипт не запускается.
Обычно это происходит, когда существует ошибка в скрипте, или при наличии функции, которая не выполняется. Для успешного запуска скрипта функция должна быть верно прописана, поддерживаться сервером и выполняться от используемой версии PHP. Бывают ситуации, когда функция несовместима с определенными версиями PHP. Получить более подробную информацию о той или иной функции можно в интернете.
2) Не хватает оперативной памяти.
Если в логах вы видите ошибку «Allowed memory size», для устранения ошибки 500 стоит оптимизировать работу скрипта. Вы можете воспользоваться специальными расширениями для анализа производительности скрипта или обратиться за помощью к специалисту, который поработает над его оптимизацией.
Если ваш сайт размещен на отдельном физическом или виртуальном сервере, можно попробовать увеличить максимальное использование оперативной памяти на процесс (memory_limit). На шаред хостинге этот параметр обычно не изменяется, но есть возможность купить хостинг помощнее.
Ошибки в CMS
Если код CMS содержит неверный синтаксис, это может вывести сайт из строя. В таком случае логи сообщат вам об ошибке 500 текстом «PHP Parse error: syntax error, unexpected». Так происходит, когда некорректно работает плагин (или тема, используемая в CMS, но реже) либо при наличии ошибки в коде. Ошибка может быть допущена случайно, произойти при обновлении плагина или версии CMS.
При чтении логов обратите внимание на путь, который следует за сообщением об ошибке. Он может указать на проблемную часть кода или плагин. Если проблема в плагине, для восстановления работы сайта переименуйте на время папку, в которой он расположен. Попробуйте обновить плагин или откатить его до прежней версии. Если ситуацию не удается исправить, от плагина стоит отказаться либо заменить его аналогом. Также в большинстве случаев подобные проблемы помогает решить поддержка CMS.
Информацию о других распространенных ошибках вы можете найти в статье «6 наиболее часто возникающих ошибок HTTP и способы их устранения».