Всем, привет! Сегодня поговорим о том, с чем связана ошибка 500 Internal Server Error и как ее можно исправить. Поэтому если вы столкнулись с внутренней ошибкой сервера на сайте — не переживайте, сейчас мы с вами все быстренько наладим.
Сразу отмечу тот факт, что в том случае, если все страницы вашего сайта имеют код ошибки 500 (Internal Server Error), то вполне возможно, что это не ваша вина, а скорее всего просто сервер «барахлит» или же на нем тупо идут временные технически работы.
В таком случае нужно в первую очередь обратиться в техническую поддержу вашего хостинг-провайдера и если проблема не в сервере, то на худой конец можно сделать back uk (откат к сохраненной версии сайта) или попытаться исправить эту ошибку самостоятельно.
Исправить внутреннюю ошибку сервера 500 на таких CMS-системах, как WordPress, Joomla или OpenCart — практически не составляет никого труда. Для этого просто внимательно прочитайте эту статью, а если появятся какие-либо вопросы — смело пишите мне в Twitter.
500 внутренняя ошибка сервера — что это значит?
Ошибка 500 (<от англ. 500 Internal Server Error) — внутренняя ошибка сервера, возникающая во время сбоя веб-сервера или наличия ошибки в серверной части веб-приложения.
HTTP-статус ответа сервера можно подделать как для определенных IP-адресов, так и для всех пользователей веб-приложения. Однако, ошибка 500 internal server error возникает в основном из-за технических неисправностей веб-ресурса или веб-сервера.
Если вы столкнулись с ошибкой 500 на каком-либо сайте и при этом не являетесь его владельцем, я рекомендую выполнить следующие действия:
-
Откройте консоль на компьютере (CMD + Enter) и выполните следующую команду: ping (название домена). Пример:
ping vk.com
и если обмен пакетами произойдет без потерь — значит вам просто нужно очистить кэш браузера или зайти на сайт с помощью VPN. -
Подождите определенное количество времени в том случае, если при выполнение команды
ping (название домена)
произойдут потери. Вполне возможно, что сайт упал по причине ошибки веб-приложения или сбоя каких-либо настроек веб-сервера.
Надеюсь, что вы уяснили то, что значит 500 ошибка сервера и как ее исправить на чужом сайте. Ну, а если она имеется на вашем веб-ресурсе — давайте выясним всевозможные причины ее возникновения, а также постараемся самостоятельно ее устранить.
Причины кода ошибки 500 internal server error
Сообщение об ошибки на сайте с HTTP-статусом 500, как мы уже знаем — связано с тем, что программное обеспечение сервера либо не работает, либо работает, но один или несколько его компонентов дают сбои в серверной части веб-приложения на клиентские запросы.
В связи с этим, в первую очередь нужно провести определенную диагностику как сайта, так и сервера для выявления истинной причины возникновения ошибки 500 internal server error.
Понятно, но я не программист, — как мне решить эту проблему?
Вам уже известно, что означает ошибка 500 и то, что ее очень легко исправить, поэтому даже если вы не обладаете соответствующими знаниями веб-разработки — вы без труда ее устраните. К тому же, я опишу причины возникновения Error 500 самыми простыми словами.
Сразу хочу отметить то, что в данном разделе статьи будут рассмотрены только наиболее часто встречающиеся причины возникновения внутренней ошибки сервера.
#1. Неправильно настроенный файл .htaccess
Одна из самых распространенных причин возникновения 500 internal server error — это неправильно настроенный файл .htaccess. Он предназначен для изменения конфигурации и настройки веб-сервера Apache, поэтому любая ошибка в нем приведет к падению сайта.
ПРИМЕЧАНИЕ. Некоторые CMS-системы (и их плагины), типа WordPress имеют доступ к файлу .htaccess и могут записывать в него свои инструкции, поэтому на всякий случай лучше все же закрыть доступ к данному файлу на сервере.
Чтобы исправить ошибку 500 — откройте файл .htaccess и тупо закомментируйте весь код (Ctrl + A и Ctrl + /). Затем перейдите на сайт и посмотрите — пропала ошибка или нет. Если 500 ошибка сервера никуда не пропала, то тогда переходим к следующему пункту.
#2. Технические работы на веб-сервере
Не знаю, как у вас, но у меня частенько хостинг-провайдер устраивает всевозможные технические работы на сервере. В связи с этим, если вы обнаружите ошибку 500 на своем сайте — не спешите бить тревогу, вполне возможно, что это вообще не ваша вина.
Просто напишите в техническую поддержку хостинга для уточнения данного вопроса и если они подтвердят свою причастность к данной ошибки — дождитесь пока они все исправят. В жизни всякое бывает, может они в этот самый момент отражают DDoS-атаку на сервер.
К тому же, когда сервер падает по причине самого хостинг-провайдера, то все страницы сайта выдают ошибку 500, а если это ваша вина, то определенные страницы сайта должны быть доступными. С этим вам тоже может помочь разобраться поддержка вашего хостинга.
#3. Тайм-аут при получении внешнего ресурса
Обычно на веб-серверах прописаны лимиты на получение внешнего или основного ресурса, и если он за этот промежуток времени не сможет выполнить операцию, то в результате бесконечного ожидания программа зависнет или часть ее функционала станет недоступна.
По этой причине следуют задать соответствующий тайм-аут проксирования в ответ на HTTP-запрос пользователя для вашего веб-сервера. Если для вас это сложно — обратитесь за помощью к фрилансерам или поищите ответы на форумах для веб-разработчиков.
Сразу хочу вас предупредить — далеко не все хостинг-провайдеры предоставляют доступ к конфигурационным файлам сервера. В таком случае лучше приобрести VPS и уже потом обращаться к фрилансерам или в веб-студию, т. к. по другому эту ошибку не исправить.
#4. Тайм-аут при выполнении PHP-скриптов
Не исключено, что 500 ошибка на сайте связана с ограниченным лимитом выполнения PHP-скриптов и прерыванием их запуска в ответ на HTTP-запрос пользователя. По этой причине обязательно установите true
для ignore_user_abort
в конфигурационном файле PHP.
Также не забудьте подставить соответствующее значение для max_execution_time
внутри вашего файла php.ini. С помощью данной директивы можно задать максимальное время в секундах, в течение которого PHP-скрипт должен полностью загрузиться.
Если вы используете какую-нибудь CMS-систему, типа WordPress или OpenCart, и данная ошибка связана именно с тайм-аутом при выполнении «тяжелых» PHP-скриптов, то следует либо сменить шаблон, либо самостоятельно оптимизировать проблемные участки кода.
#5. Устаревший кэш на стороне клиента
Очень редко случается, что внутренняя ошибка сервера связана с устаревшим кэшом на стороне клиента. Честно говоря, я сам не понимаю то, как это возможно, но тем не менее — это факт. Для решения данной проблемы знания веб-разработки совсем не требуются.
Просто нажмите Ctrl + Shift + Delete, после чего откроется новая вкладка в браузере, на которой вам нужно отметить определенные флажки для очистки кэша браузера и файлов cookie. Иногда это может сработать, хотя я не особо в это верю.
Если вы все равно не понимаете, как очистить кэш в браузере или вам просто по каким-то причинам лень это понимать — тогда просто зайдите на свой сайт с другого браузера и вполне возможно, что ошибка 500 internal server error исчезнет с вашего веб-приложения.
Как исправить ошибку 500 на сайте?
Мы уже выяснили, что такое 500 internal server error и причины ее возникновения, поэтому теперь давайте поговорим о том, как исправить ошибку 500 на сайте.
Супер-крутыми знаниями программирования для исправления error 500 на сайте обладать не нужно, достаточно просто прочитать данный раздел статьи предельно внимательно.
Для этого мы рассмотрим 3 следующих способа:
- Самостоятельно исправить ошибку 500 internal server error на сайте;
- Найти фрилансера или обратиться в веб-студию для исправления ошибки 500;
- Обратиться к хостинг-провайдеру за помощью (консультацией).
Один из этих способов вам точно поможет, а если нет — вы знаете, где меня искать:) Просто напишите мне в Twitter и я постараюсь помочь вам разобраться с этой ошибкой.
Самостоятельно исправить ошибку 500 на сайте
Если вы решили самостоятельно исправлять ошибку 500 на веб-сайте, то для этого в первую очередь посмотрите логи веб-сервера. Например, на моем хостинге установлена cPanel, в ней я могу посмотреть последние 300 ошибок сервера Apache в любое время дня и суток.
В связи с этим, если на вашем хостинге тоже установлена cPanel, то тогда перейдите в панель управления, затем найдите в ней раздел «Ошибки» и перейдите туда для просмотра логов веб-сервера Apache. Для ISP manager смотрите видео, опубликованное чуть выше.
Ну, а если error 500 связана с ошибками выполнения PHP-скриптов, то тогда в этом случае вам поможет файл error_log. Обычно данный файл располагается в одной директории с тем PHP-скриптом, при выполнении которого была допущена ошибка.
Сразу хочу отметить то, что у вас не получиться открыть файл error_log на хостинге, если его размер превысит 1 MB. В таком случае просто скачайте данный файл к себе на компьютер и затем откройте его с помощью встроенного блокнота или текстового редактора.
Внутри файла error_log вы обнаружите примерно следующую картину:
ПРИЧИНА ОШИБКИ: [18-Jun-2016 14:31:14 UTC] PHP Parse error: syntax error, unexprected ‘shoppmilano’ (T_STRING) in /home/shoppmil/public_html/w-content/themes/professional/inc/customizer.php on line 423.
— И как нам это понимать?
- syntax error — это говорит о том, что ошибка синтаксическая.
- /home/shoppmil/public_html/w-content/themes/professional/inc/customizer.php — это полный путь к файлу, в котором была вызвана данная ошибка.
- on line 423 — это строка, в которой содержаться ошибка.
С помощью этих логов вы узнаете, где именно произошла внутренняя ошибка сервера, из-за которой лег весь сайт. К тому же, в данном файле также отображаются ошибки, связанные с файлом .htaccess и это в несколько раз сократит ваше время на их поиски.
Обратиться к хостинг-провайдеру за помощью
В том случае, если вы не найдете файл error_log и у вас не отображаются последние 300 ошибок веб-сервера Apache в панели управления хостингом, то тогда следует как можно скорее обратиться в тех. поддержку вашего хостинг-провайдера.
Системный администратор лично посмотрит все логи и укажет вам на то, какой именно файл и в какой строчке кода совершена ошибка. Относительно сервера, сисадмин сам все исправит, но в код вашего сайта он лесть конечно же не будет.
Еще я рекомендую вам попросить тех. поддержку скинуть вам логи, т. к. они вам понадобятся для самостоятельного исправления ошибки 500. Эти же логи вы сможете предоставить веб-разработчику и тогда ему не придется часами ломать голову.
Найти фрилансера для исправления ошибки 500
Допустим, у вас по каким-то причинам нет времени копаться в коде и разбираться с тем, чем именно была вызвана ошибка 500 internal server error. В таком случае можно обратиться к фрилансерам на какой-нибудь бирже, типа FL.ru, Kwork или Weblancer.
За 500 руб. ребята с любой биржи фриланса с огромным удовольствием исправят любые ошибки на вашем сайте — это я вам, как бывший фрилансер утверждаю. Тупо опубликуйте задание или обратитесь к ТОП’овому исполнителю и вам сделают все в лучшем виде.
Как избежать внутреннюю ошибку сервера?
Мой сайт сделан на Laravel и поэтому, когда я его опубликовал на боевом сервере — сразу же отключил debug. По этой причине, если я допущу хотя бы одну незначительную ошибку в коде — у меня на сайте (в зависимости о того, где именно ошибка) высветиться error 500.
Чтобы избежать ошибок, да и для личного удобства я опубликовал свой сайт в приватном репозитории на Bitbucket и вношу в него все изменения за счет Git. Таким образом, у меня 3 версии сайта: первая на ПК, вторая на Bitbucket и третья на боевом сервере.
По сути, я просто делаю какие-то изменения на локально сервере, затем отправляю их 2-3 командами на Bitbucket и после этого — одним нажатием кнопки подтягиваю все изменения на хостинг. Для этого просто нужно научиться пользоваться Git.
Git — это очень удобная штука, с его помощью вы сможете в любой момент откатить любые изменения назад. Ну, а все ошибки можно исправить на локальном сервере, тем самым предотвращая любые неисправности на боевом сервере. Скачать Git можно по этой ссылке.
Да и с точки зрения безопасности — это 100% вариант того, что даже если ваше веб-приложение взломают — вы в любой момент сможете переехать на любой другой хостинг.
Error 500 с точки зрения простых пользователей
Как обычный посетитель сайта вы мало что сможете сделать, относительно ошибки 500 Internal Server Error. Дело в том, что сервер, на котором размещен тот или иной сайт имеет неправильную конфигурацию. Т. е. с вашем ПК и сетевым подключением все нормально.
Максимум, что вы можете сделать — подождать, пока владелец сайта заметит и исправит ошибку. Но ответ сервера может закэшироваться, поэтому очистите кэш, если 500 ошибка на сайте не пропадет через определенное количество времени.
Обратите внимание. Если вы заполнили форму заказа в интернет-магазине и отправили оплату и после чего произошла ошибка 500, то в этом случае не перезагружайте страницу. Это в подавляющем большинстве случаев может привести к дублированию заказа.
Также, вполне возможно, что резкое увеличение просмотров страниц на сайте привело к тому, что север просто остановился. Данная проблема обычно решается в течение нескольких секунд, если администрация веб-ресурса вовремя заметит ошибку.
Ну, а если вам нужно прям срочно попасть на тот или иной сайт, но 500 ошибка сервера мешает вам это сделать, то тогда просто откройте сохраненную копию страницы. Это можно сделать как в поисковой система Yandex, так и Google.
Подведем итоги в заключение статьи
Ошибки 500 internal server error — это неприятная проблема, т. к. она не имеет ясного и точного способа исправления. Но я надеюсь на то, что данное руководство помогло вам хоть как-то сократить время на поиски причины 500 ошибки сервера.
Не забывайте ставить актуальную версию PHP, вовремя обновлять плагины и создавать резервную копию сайта. В случае чего — вы будите защищены от фатальных ошибок. И все-таки — попробуйте в своей работе Git, вы не пожалеете то, что потратите на это время.
Пишите мне в Twitter в том случае, если вы что-то не поняли из данного руководства или для уточнения всевозможных вопросов, относительно этой статьи. И не забудьте подписаться на email-рассылку, если вдруг для вас данная статья оказалась полезной.