- Что означает код ошибки 500 и почему она возникает?
- Все причины возникновения ошибки
- Что делать при появлении ошибки?
- Что делать администратору при появлении ошибки?
Препятствием к открытию веб-страницы являются различные ошибки, возникающие на стороне сервера или клиента (в браузере). При исправном подключении к сайту браузер получает код 200. На веб-странице его не видно, так как пользователю для доступа к контенту не нужно прикладывать дополнительных усилий. В случае ошибки на загружаемой веб-странице появляется сообщение с кодом, по которому можно понять причину отсутствия соединения с сервером. Ошибка «500 Internal Server Error» — одна из наиболее серьезных, ведь пользователь редко может устранить ее самостоятельно, чаще всего требуется вмешательство владельца сайта.
- Что означает код ошибки 500 и почему она возникает?
- Причины возникновения ошибки 500
- Все причины возникновения ошибки
- Что делать пользователю при ошибке 500
- Подождать
- Сообщить администратору ресурса
- Что при ошибке 500 пользователю делать бессмысленно
- Что делать администратору при ошибке 500
- Посмотреть лог ошибок
- Выставить права для CGI‑скриптов
- Проверить содержимое CGI‑скриптов
- Удалить или отключить недавно установленные плагины или компоненты
- Оптимизировать скрипты
- Увеличить объём оперативной памяти сервера
- Попросить помощи
- Причины возникновения 500 ошибки сервера и способы их исправить
- Неправильные права доступа
- Высокая длительность работы скрипта
- Нехватка памяти для работы кода
- Ошибка в cgi скрптах
- Ошибка 500 при использовании WordPress
- Ошибка 500 при входе в административную панель Joomla
- СсылкиПравить
- Что означает ошибка 500
- Что делать при появлении ошибки?
- Где можно встретить ошибку 500?
- Как устранить ошибку 500 на сайте
- Ошибки в скриптах
- Ошибки в плагинах и расширениях CMS
- Не хватает оперативной памяти
- Некорректные права на файлы и каталоги
- Что делать администратору при появлении ошибки?
- Проверить лог ошибок
- Проверить содержимое CGI-скриптов
- Проверить плагины и компоненты
- Увеличить объем оперативной памяти сервера
- Обзорный списокПравить
- Заключение
Что означает код ошибки 500 и почему она возникает?
Коды состояния HTTP сообщают браузеру интернет-пользователя (клиенту), успешно ли выполнен запрос (получение доступа к сайту). К примеру, если браузер получает код состояния 200, то все прошло успешно. Это сообщение не видно пользователю — вместо него появляется запрошенный контент.
С кодами состояния 400 и 500 дело обстоит иначе. Первый означает, что ошибка связана с клиентом, а второй — с сервером.
Internal Server Error 500 — общий код состояния для ошибок со стороны сервера. По этой причине невозможно сразу определить, где именно возникла проблема: известно лишь то, что сервер сообщил о ней. Когда это происходит, сайт отображает посетителям страницу с сообщением об ошибке.
Причины возникновения ошибки 500
Ошибка 500 — свидетельство того, что запрос к сайту был отправлен браузером правильно, но сервер не может его обработать и выдать корректный ответ. Пользователи не могут попасть на сайт, а поисковые роботы теряют возможность обрабатывать веб-страницы — распознавать и оценивать их контент и определять их место в поисковой выдаче. Чтобы не потерять пользователей и результаты SEO-оптимизации, нужно быстро устранить ошибку. Для этого необходимо проверить сервер и расположенные на нем файлы сайта и программы на наличие одной из следующих проблем:
- синтаксические ошибки в файле .htaccess;
- ошибки в скриптах сайта;
- нехватка оперативной памяти при выполнении процесса;
- ошибки в плагинах, шаблонах и коде CMS;
- неправильно заданные права на каталоги и файлы.
Все причины возникновения ошибки
Internal Server Error 500 возникает, когда запрос обрабатывается сервером. Этот код состояния включает все незапланированные события, которые могут произойти на стороне сервера и помешать загрузке сайта. Одна из возможных причин — ошибка в конфигурации сервера.
Вот несколько типичных источников проблем.
- Доступ запрещен — разрешения основных файлов и папок заданы неправильно.
- Тайм-аут сеанса PHP — скрипт пытается получить доступ к внешнему ресурсу и сталкивается с задержкой.
- Некорректный код в htaccess — структура htaccess, файла для локальной настройки сервера Apache, может быть неправильной.
- Ошибка в синтаксисе и коде скриптов CGI и Perl — в этих скриптах могут встречаться неточности, в частности несогласованность путей.
- Лимит памяти PHP — процесс превышает пределы памяти и поэтому не может быть выполнен правильно.
Если сайт работает на WordPress или другой системе управления контентом, причиной ошибки может стать неисправное или несовместимое расширение. Плагины и темы — особенно от сторонних провайдеров — могут повлиять на весь сайт.
Если ошибка сохраняется в течение длительного времени, это может негативно повлиять на SEO сайта. К счастью, большинство из этих проблем можно исправить.
Код состояния HTTP (англ. HTTP status code) — часть первой строки ответа сервера при запросах по протоколу HTTP.
Он представляет собой целое трёхразрядное десятичное число. Первая цифра указывает на класс состояния. За кодом ответа обычно следует отделённая пробелом поясняющая фраза на английском языке, которая разъясняет человеку причину именно такого ответа. Примеры:
- 201 Created.
- 401 Unauthorized.
- 507 Insufficient Storage.
Клиент может не знать все коды состояния, но он обязан отреагировать в соответствии с классом кода. В настоящее время выделено пять классов кодов состояния.
Веб-сервер Internet Information Services в своих файлах журналов, кроме стандартных кодов состояния, использует подкоды, записывая их через точку после основного. При этом в ответах от сервера данный подкод не размещается — он нужен администратору сервера, чтобы тот мог более точно определять источники проблем.
Инструкция для пользователей и владельцев ресурса.
Ошибка 500 (Internal Server Error) — это внутренняя проблема сервера. Она возникает, когда браузер или другой клиент отправляет серверу запрос, а тот не может его обработать.
Одна из самых частых причин появления ошибки 500 — это неправильный синтаксис файла .htaccess. Кроме того, она порой возникает после загрузки на сервер неверных CGI‑скриптов или установки некорректных прав доступа.
То есть в ошибке 500, как и в других ответах с кодом, который начинается на цифру 5, виноваты разработчики или администраторы сервера. Но никак не пользователи.
Что делать пользователю при ошибке 500
Если вы увидели ошибку 500 на чужом сайте, есть два варианта.
Подождать
Если у вас нет доступа к этому ресурсу, вы не сможете отредактировать файл, изменить настройки или выполнить другие подобные действия. Поэтому стоит подождать, пока администратор исправит ошибку, и зайти на сайт позднее.
Сообщить администратору ресурса
Не все владельцы сайтов круглосуточно мониторят логи и читают сообщения об ошибках. Вполне возможно, что администратор просто не в курсе, что сайт перестал работать.
В таком случае вы можете помочь. Попробуйте найти контактную информацию и связаться с владельцем ресурса, чтобы сообщить о проблеме. Если на самом сайте из‑за ошибки 500 вы никаких полезных данных не видите, найдите сохранённую копию страницы в поисковиках или в архиве интернета.
Что при ошибке 500 пользователю делать бессмысленно
Пример ошибки 500. Сервис GetStatusCode создан специально для тестирования различных ответов
Так как проблема связана с сервером, то нет резона что‑то предпринимать со стороны клиента. Поэтому не пытайтесь:
- перезагружать компьютер;
- менять браузер;
- переустанавливать ПО;
- перезагружать роутер.
Что делать администратору при ошибке 500
Советуем последовательно попробовать каждый из вариантов, если он, конечно, актуален для вашего ресурса.
Если вы используете веб‑сервер Apache, то в корне вашего сайта или во вложенных папках, скорее всего, есть файл .htaccess. В нём хранятся серверные настройки.
В большинстве случаев ресурс будет работать и без этого файла. Попробуйте переименовать .htaccess, например, в .htaccess_, а затем снова зайти на главную страницу сайта.
Если ошибка 500 исчезла, значит, дело именно в .htaccess. Проверьте синтаксис этого файла — возможно, при редактировании вы где‑то вставили лишний символ или допустили опечатку. Если есть предыдущая версия настроек, верните её и посмотрите, появляется ли ошибка 500.
Иногда помогает закомментировать строку Options в .htaccess — вставить # в самом её начале. Если это не сработало, закомментируйте и другие строки, а затем последовательно убирайте #, чтобы найти проблемное место в файле.
Посмотреть лог ошибок
Если вы недавно проводили какие‑то работы на сайте, возможно, это привело к ошибке 500. Откройте логи и посмотрите, нет ли там сообщений о проблемах. Если есть, проанализируйте их и попробуйте отменить последние корректировки.
Хостеры обычно указывают, где по умолчанию хранятся логи и как получить к ним доступ из панели управления. Эти сведения можно найти в разделах помощи или FAQ (frequently asked questions — часто задаваемые вопросы) на сайте хостинга.
Выставить права для CGI‑скриптов
Если вы используете CGI‑скрипты, то сами файлы с ними и папки, в которых они лежат, должны иметь право доступа 0755 (drwxr‑xr‑x). Такая комбинация разрешает запись в них только для владельца. Остальные пользователи могут лишь читать эти файлы и запускать их.
Проверить содержимое CGI‑скриптов
Также CGI‑программы могут формировать неправильные HTTP‑заголовки ответа. В этом случае вы, скорее всего, увидите ошибки в логах.
Удалить или отключить недавно установленные плагины или компоненты
Бывает, что отдельные компоненты сайта или плагины конфликтуют между собой. Это также приводит к ошибке 500 и другим проблемам на стороне сервера.
Если вы недавно устанавливали модули либо обновляли их, попробуйте отключить эти элементы в панели администрирования. Возможно, после этого на сайте возникнут другие ошибки. Но если ответ 500 больше не приходит, дело как раз в конфликте компонентов или плагинов.
Оптимизировать скрипты
Если скрипты выполняются долго или для них не хватает ресурсов, попробуйте пересмотреть их содержимое. Возможно, код нуждается в оптимизации, чтобы он потреблял меньше процессорного времени и оперативной памяти.
Особенно часто скриптам не хватает ресурсов, если вы используете виртуальный хостинг. Там количество памяти жёстко ограничено, чтобы у всех аккаунтов в рамках одного физического сервера были равные возможности.
Попробуйте разбить скрипт на блоки и оценить эффективность работы каждого из них. Если в коде много внешних вызовов или потребление памяти стабильно растёт вплоть до установленного лимита, с этим точно стоит что‑то сделать.
Увеличить объём оперативной памяти сервера
Бывает, что даже после оптимизации скриптов они всё равно потребляют слишком много памяти. В этом случае придётся перейти на более дорогой пакет обслуживания на хостинге или, если предоставляется такая возможность, увеличить непосредственно выделение памяти. И не переплачивать за другие ресурсы, которые вам не нужны.
Попросить помощи
Обратитесь в службу поддержки хостера или на профильный форум. Поищите похожие ошибки на Stack Overflow — если там нет подходящей темы, создайте новую. Опишите ситуацию как можно более детально и будьте готовы пробовать различные варианты, которые вам предложат в комментариях.
Правда, порой ответов приходится ждать долго. Поэтому имеет смысл зайти в похожие темы и попросить помощи там.
Причины возникновения 500 ошибки сервера и способы их исправить
Ошибка 500 говорит о некорректной обработке запросов. Из-за этого пользователи и поисковые системы не могут полноценно работать с сайтом. Необходимо выявить и исправить причину, из-за которой возникло сообщение об ошибке. В случае, когда ошибка появляется часто и устраняется только технической поддержкой, стоит сменить хостинг.
Мы предлагаем бесплатный перенос Ваших проектов с другого хостинга на наш.
Ошибка 500 — внутренняя, поэтому если она возникла на нужном для просмотра сайте, то можно только посетить его позже, когда восстановят работоспособность.
Причин, по которым появляется ошибка 500 — огромное количество. Задача сводится к поиску и устранению неисправности.
Неправильные права доступа
Частая причина возникновения ошибки – установка неправильных прав доступа на файлы скриптов — 777. Из-за этого они блокируются сервером. Такая настройка разрешает всем вносить изменения в файл, что недопустимо с точки зрения обеспечения безопасности. В случае, когда требуется установить такие права, поставщик всегда сообщает об этом заранее.
С помощью файлового менеждера (на скриншоте — бесплатная программа FileZilla) просмотреть права доступа к файлу или папке на сервере.
В первую очередь надо проверить, каким образом настроены права доступа. Для каждого типа элементов они проверяются индивидуально. Для папок рекомендуется значение 755, для скриптов — 600, а для других файлов — 644.
Оптимальное решение — один человек. который может управлять аккаунтом. Не желательно давать кому-либо права доступа к корневым папкам сайта.
Высокая длительность работы скрипта
Помимо PHP ограничений на время, за которое должен завершить работу скрипт, ограничения есть и от сервера. Появление ошибки возможно, когда нет ответа за указанный в конфигурации промежуток времени. По этой причине работа скрипта будет автоматически прекращена.
Решение проблемы заключается в оптимизации работы скрипта. Можно использовать специальные сервисы, которые помогают найти медленный участок кода. Если используется выделенный сервер или VPS, можно увеличить промежуток времени ожидания сервера. Маловероятно, что удастся изменить этот параметр при использовании виртуального хостинга. Это возможно только при согласии технической поддержки.
У файла «.htaccess» определен строгий синтаксис, который нельзя нарушать. Если в нем написаны ошибочные директивы, то это приведет к появлению ошибки 500. Возможно, директива написана правильно, но не поддерживается.
В корневой папке сайта нужно поискать файл «.htaccess». Если он нашелся, то нужно скопировать его, чтобы не потерять, а затем удалить из папки. После этой процедуры сайт может заработать. В таком случае станет точно известно, что причина была в этом файле. Затем нужно исправить файл (самый простой способ — добавить файл из чистого дистрибутива используемой системы управления сайтом).
Кроме того, есть возможность посмотреть сведения о появившихся ошибках. Ошибки сервера заносятся в специальный файл «error.log». В нем нужно найти строки о том, какая из директив ошибочна. Например, информация «Invalid command ‘RewritRule’» говорит о том, что директива «RewritRule» написана с опечаткой. Исправление на «RewriteRule» убирает эту ошибку.
Нехватка памяти для работы кода
Эта функция предотвращает большую нагрузку на сервер со стороны каждого аккаунта.
В первую очередь следует определить, нет ли в коде ошибок, за счет которых он требует слишком много памяти. Если скрипт работает правильно, то начать решение проблемы можно с общения с сотрудниками технической поддержки. В некоторых случаях они помогают разрешить этот вопрос. Мы не обязываем клиента переходить на дорогой тариф из-за нехватке памяти, для решения проблемы можно за небольшую плату увеличить кол-во памяти на текущем тарифном плане.
Тарифы виртуального хостинга с выбором периода предоплаты от 1 месяца до 3-х лет.
Ошибка в cgi скрптах
Ошибка 500 чаще появляется из-за ошибок в «htaccess», но еще одна её причина – неправильная работа с CGI-скриптами.
Существует три основных правила, которые могут быть нарушены.
- Формат окончания каждой из строк — UNIX (n), а не Windows (rn). Для обеспечения такого условия их загрузка проводится по FTP в режиме ASCII.
- Права доступа для скриптов CGI и папок, где они хранятся — 0755. Такая настройка разрешает процедуру записи исключительно владельцу, чтоб правильно с позиции безопасности.
- При работе скрипта CGI могут появиться неправильные HTTP-заголовки ответа. Следует проанализировать содержимое файла «error log» на предмет ошибок.
Ошибка 500 при использовании WordPress
В первую очередь рекомендуется определить, имеет ли файл «.htaccess» отношение к возникновению неисправности. Для этого выполнить его резервное копирование, удалить, а затем обновить страницу. Если сайт после этого работает, значит причина найдена и осталось исправить файл.
Файл «.htaccess» используется WordPress в случае, когда обычная структура ссылок была изменена на ЧПУ. Помимо этого, его используют плагины WordPress, которые осуществляют резервное копирование и некоторые другие функции.
Чаще всего файл «.htaccess» создается однократно, но в WordPress это происходит регулярно. Если в файл заносится ошибка, то хостинг считает его поврежденным и появляется «ошибка 500». Записывать лишние данные, которые воспринимаются как повреждения, могут:
- движок;
- тема;
- плагины, которые активированы.
Если приведенные методы не помогли, то в качестве крайнего варианта можно отключить функцию wordpress, которая создает и переписывает файл «.htaccess». Этот метод подходит только как временная мера, поскольку вызывает проблемы при активации плагинов.
Мы предлагаем бесперебойный WordPress хостинг, оптимизированный под создание сайтов на этой CMS.
Поочередная проверка элементов позволяет отследить, какой из них — причина ошибки. В процессе поиска неисправности постоянно проверяют, не исчезает ли ошибка 500:
- сменить тему и проверить наличие ошибки;
- по очереди деактивировать плагины и следить за изменениями;
- поиск ошибок в сторонних скриптах;
- поиск проблемы в движке WordPress.
Сбои плагина иногда видно по искажению внешнего вида сайта. Возможно наличие ошибок в работе конкретного плагина или его конфликт с остальными.
Если файл «.htaccess» – не причина проблемы, нужно убедиться, что скрипты работают с нормальной скоростью. Поиск медленно работающиех скриптов можно выполнить самостоятельно, либо попросить помощи у специалистов службы технической поддержки. Файл с обнаруженной ошибкой и временем ее появления отражается в файле «Error Log».
В WordPress частые причины ошибки — файлы плагинов или тем. Можно деактивировать плагин и применить новый. Если причиной неисправности оказалось ядро WordPress, потребуется обновление.
На хостинге выделяется определенный объем оперативной памяти для использования. Ошибка 500 появится и из-за превышения этого допустимого значения. В админ-панели можно убедиться, не превысил ли сайт этот лимит. Там приведены сведения о уровне загруженности сервера. В файле с перечнем появляющихся ошибок видно, какой из файлов вызвал чрезмерную загрузку. Его придется обновить или удалить, если это допустимо.
Увеличить объем памяти возможно путем корректирования файла. В корне хостинга нужно найти «wp.config.php» и после последней строки добавить в него код:«define(‘WP_MEMORY_LIMIT’, ’64M’».
В ряде случаев помогает обновление WordPress до последней версии.
Ошибка 500 при входе в административную панель Joomla
В журнале ошибок хранятся сообщения об ошибках. Он называется «error.php» и лежит в каталоге «logs». При поиске ошибок, которые появились недавно, важно обратить на последние записи в этом файле. Там содержатся сведения о нарушениях в работе модулей, если они происходили.
Рекомендуется проверить правильность путей к каталогам «logs» и «tmp» в файле конфигурации «configuration.php». Желательно указать полные пути к этим каталогам.
Если решить проблему самостоятельно не удается, потребуется обращение в службу технической поддержки.
iPipe – надёжный хостинг-провайдер с опытом работы более 15 лет.
Её просто найти, трудно исправить и невозможно забыть: кто эта таинственная мошенница, из-за которой компании теряли миллионы денег.
Иллюстрация: Оля Ежак для Skillbox Media
Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.
Среди всех HTTP-ошибок пятисотая самая опасная — ведь никто до конца не понимает, что её вызвало. Само число 500 говорит о том, что проблема возникла на стороне сервера, но вот что именно произошло — непонятно.
У неё лаконичное описание: Internal Server Error, что означает «внутренняя ошибка сервера». Никаких подробностей и намёков на решение. Но давайте не будем унывать и постараемся разобраться, как она возникает, что означает и какими методами её можно попытаться исправить.
Ошибка 500 (Internal Server Error) — это когда сайт упал и пока его никто не смог поднять. Вообще, все ошибки, коды которых начинаются с пятёрки, указывают на вину разработчиков.
Когда возникает ошибка 500, сервер перестаёт обрабатывать запросы пользователей, продолжая при этом бодро работать и рапортовать о своих успехах. А вот пользователи в этот момент почему-то получают сообщение об ошибке. Это приводит к бесконечной попытке браузера загрузить страницу. В общем, дедовский метод с перезагрузкой тут не пройдёт.
Ошибка 500 — Internal Server Error, что в переводе означает «внутренняя ошибка сервера», а значит, решить её могут только администраторы и разработчики сайта. Но проблема в том, что она — уникальная. Сервер выдаёт её, когда остальные коды не подошли, и получается, что проблема действительно серьёзная. Решить такую проблему — всё равно что победить на городской олимпиаде по русскому языку «Русский медвежонок».
Сообщение о подобной ошибке может выглядеть так:
Это может быть просто текст с большой надписью: «Внутренняя ошибка сервера»Скриншот: Skillbox Media
А может быть ещё и картинка впридачуСкриншот: Skillbox Media
А в виде ответа на HTTP-запрос сообщение выглядит вот так:
HTTP/1.1 Internal Server Error
: Tue, 14 Feb 2023 15:30:00 GMT
: Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30
: 462
: text/html; charset=iso-8859-1
Здесь мы запрашиваем страницу по HTTP, а сервер возвращает примерно такое сообщение об ошибке: «Внутри сервера что-то не так, и он не может обработать запрос пользователя».
Само сообщение содержит информацию о том, что сайт не работает из-за внутренней ошибки на сервере. То есть проблема не в браузере, не на стороне пользователя, а именно на сервере: «The server encountered an internal error or misconfiguration and was unable to complete your request».
Ошибка 500 может ухудшить SEO и продвижение сайта в поисковике. Она приводит к тому, что поисковые роботы не смогут полностью проиндексировать сайт, потому что не получат доступ к некоторым страницам.
Если она возникает на регулярной основе, поисковые системы начнут понижать рейтинг вашего сайта, посчитав нестабильным и ненадёжным.
Но важнее всего вот что: когда пользователи сталкиваются с такой проблемой, они закрывают ваш сайт и уходят на страницы конкурентов. Растёт показатель отказов. А поисковые системы учитывают поведенческие факторы при ранжировании сайтов.
Итог очевиден — если вы заметили, что на вашем сайте часто возникает ошибка 500, стоит немедленно её исправить. Это поможет сохранить репутацию сайта и позиции в поисковых системах.
Ошибка 500 может возникнуть когда угодно, но чаще всего это происходит, когда на сайте проводятся технические работы — например, разработчики меняют конфигурацию сервера или он вовсе вышел из строя.
Причины возникновения чаще всего включают в себя следующее:
- Проблемы на сервере. Например, неправильный синтаксис, неправильная настройка сервера или проблемы с базой данных.
- Проблемы с файлами сайта. Это могут быть те же проблемы с синтаксисом, неправильное размещение файлов или неправильное использование функций.
- Проблемы с соединением. Например, неполадки в сети, медленное или нестабильное соединение, проблемы с DNS.
Если на сайте возникла ошибка 500, вы, как пользователь, это заметите не мгновенно — для этого вам придётся отправить на сайт какой-то запрос, например обновить страницу или заполнить какую-то форму (ведь чаще всего мы просматриваем уже закэшированные страницы). Тогда-то браузер попытается вступить в диалог с сервером и выдаст Internal Server Error.
В журналах, или логах, находятся записи о том, какие запросы были отправлены на сервер и как он на них ответил. Ещё там можно найти информацию о том, какие скрипты или приложения вызвали ошибку, а также о других деталях, которые способны помочь в определении проблемы.
Вот пример лога с ошибкой 500:
В этом примере лог сообщает, что при обработке запроса на получение страницы index.php произошла ошибка. Сервер не смог правильно обработать скрипт и вывести заголовки страницы, что привело к Internal Server Error. Для определения точной причины придётся провести дополнительный анализ.
Ещё одна распространённая причина — повреждения в файле .htaccess, где хранятся настройки сервера: управление доступом для пользователей, кэширование и редиректы. Повредить его можно, просто неправильно написав команду:
Проблема в первой строке — точка там лишняя. И эта мелочь вполне может вызвать ошибку 500. При этом обнаружить такую деталь будет очень непросто, потому что она практически незаметна.
Кроме логов можно использовать другие инструменты — например, инспектор браузера или специализированные программы для анализа логов. Ряд CMS вроде WordPress или Drupal могут также указать на причины проблемы благодаря встроенным инструментам. Дело в том, что у каждой CMS есть собственная система мониторинга таких проблем. Вот пример сообщения в WordPress:
Как правило, CMS предоставляют очень ограниченную информацию о причинах, поэтому лучше всё-таки изучать логи.
Если вы пользователь, то исправить проблему, скорее всего, никак не получится. Но можно попробовать сделать следующее:
- Перезагрузить страницу. Иногда ошибка возникает из-за временной нагрузки на сервер, а перезагрузка страницы может решить проблему.
- Проверить соединение. Убедитесь, что ваше интернет-соединение работает стабильно.
Чтобы исправить ошибку на стороне сервера, нужно приложить больше усилий. Вероятно, придётся использовать средства отладки и тестирования кода. Ниже представлены несколько шагов, которые помогут вам найти и исправить ситуацию:
- Проверьте логи сервера. Это позволит определить, что вызывает ошибку и где это происходит.
- Проверьте базу данных. Убедитесь, что база данных работает корректно.
- Проверьте код на наличие ошибок. Проблема может возникнуть из-за опечаток, ошибок синтаксиса, неправильных путей к файлам и неправильных конфигураций.
- Измените настройки сервера. Попробуйте поменять разные конфигурации и посмотреть, к чему это приведёт.
- Проверьте сторонние плагины и расширения. Иногда проблема может возникнуть из-за их неправильной работы. Проверьте, что все они работают корректно.
- Проверьте файлы сервера. В них тоже могут быть ошибки или неправильные настройки.
- Попробуйте переустановить CMS или рабочее окружение. К этому имеет смысл прибегать, если все другие способы не сработали. Но это уж совсем радикальный совет — лучше обратитесь к кому-то более опытному, наверняка он поможет.
- Если же не помогло даже это, пора писать три письма и бросать программирование (конечно, чтобы открыть свою кофейню).
Борьба может затянуться надолго — ведь главная причина часто бывает непредсказуема, неочевидна и весьма коварна.
Важные факты об ошибке 500 (Internal Server Error), которые стоит запомнить:
- Ошибка 500 (Internal Server Error) — это сообщение о проблеме, которое может появиться при попытке получить доступ к веб-странице.
- Она может возникнуть по разным причинам — например, из-за проблем на стороне сервера, неправильных настроек сайта или ошибок в коде.
- Она негативно влияет на SEO-продвижение сайта. Поэтому исправляйте её сразу же.
- Обновляйте ПО и проверяйте код на ошибки — это лучший способ держать сайт в хорошем техническом состоянии.
Научитесь: Профессия Веб-разработчик
СсылкиПравить
Основные документы по протоколу HTTP (по убыванию даты публикации)
- Hypertext Transfer Protocol (HTTP) Status Code Registry . IANA (17 октября 2007). — реестр кодов состояния HTTP. Дата обращения: 30 июля 2009. Архивировано 17 февраля 2012 года.
- RFC 2616 Draft standard «Hypertext Transfer Protocol — HTTP/1.1» (англ.) (с «Протокол передачи гипертекста — HTTP/1.1»); IETF, июнь 1999; Fielding Roy (), Gettys Jim (Compaq/W3C), Mogul J. (Compaq), (MIT/W3C), Masinter L. (Xerox), Leach P. (Microsoft), Berners-Lee Tim (W3C/MIT) — обновление протокола HTTP версии 1.1.
- RFC 2068 Proposed standard «Hypertext Transfer Protocol — HTTP/1.1» (англ.) (с «Протокол передачи гипертекста — HTTP/1.1»); IETF, январь 1997; Fielding Roy (), Gettys Jim (DEC), Mogul J. (DEC), (MIT/LCS), Berners-Lee Tim (MIT/LCS) — ранняя спецификация по HTTP версии 1.1.
- RFC 1945 Informational «Hypertext Transfer Protocol — HTTP/1.0» (англ.) (с «Протокол передачи гипертекста — HTTP/1.0»); IETF, май 1996; Berners-Lee Tim (MIT/LCS), Fielding Roy (), (MIT/LCS) — самая первая спецификация по протоколу HTTP. Так же включает в себя описание HTTP/0.9.
Документы по расширениям и обновлениям протокола HTTP (по убыванию даты публикации)
- RFC 4918 Proposed Standard «HTTP Extensions for Web Distributed Authoring and Versioning (WebDAV)» (англ.) (с «Расширения HTTP для распределённой авторской работы и управления версиями через веб (WebDAV)»); IETF, июнь 2007; Dusseault Ed. L. () — поздняя спецификация по протоколу WebDAV, заместившая RFC 2518.
- RFC 3229 Proposed standard «Delta encoding in HTTP» (англ.) (с «Дельта-кодирование в HTTP»); IETF, январь 2002; Mogul J. (Compaq WRL), Krishnamurthy B. (AT&T), Douglis F. (AT&T), Feldmann A. (Univ. of Saarbrücken), Goland Y. (Marimba), van Hoff A. (Marimba), Hellerstein D. (ERS/USDA).
- RFC 2817 Proposed Standard «Upgrading to TLS Within HTTP/1.1» (англ.) (с «Обновление к TLS совместно с HTTP/1.1»); IETF, май 2000; (4K Associates/), Lawrence S. (Agranat Systems, Inc.) — обновление к RFC 2616 для описания работы HTTP и TLS.
- RFC 2774 Experimental «An HTTP Extension Framework» (англ.) (с «Каркас расширений HTTP»); IETF, февраль 2000; Nielsen H. (Microsoft), Leach P. (Microsoft), Lawrence S. (Agranat Systems).
- Internet Draft «WebDAV Advanced Collections Protocol» (с «Протокол продвинутых коллекций WebDAV»); IETF, 18 июня 1999; Slein J. (Xerox), Whitehead Jr. E. J. (), Davis J. (CourseNet), Clemm G. (Rational), Fay C. (), Crawford J. (IBM), Chihaya T. (DataChannel) — управление коллекциями в WebDAV; просрочился 18 декабря 1999 года.
- RFC 2518 Proposed Standard «HTTP Extensions for Distributed Authoring — WEBDAV» (англ.) (с «Расширения HTTP для распределённой авторской работы — WEBDAV»); IETF, февраль 1999; Goland Y. (Microsoft), Whitehead E. (), Faizi A. (Netscape), Carter S. (Novell), Jensen D. (Novell) — первая спецификация по протоколу WebDAV (замещена RFC 4918).
- RFC 2295 Experimental «Transparent Content Negotiation in HTTP» (англ.) (с «Прозрачное согласование содержимого в HTTP»); IETF, март 1998; Holtman K. (TUE), Mutz A. (Hewlett-Packard).
- Web Distributed Authoring and Versioning (WebDAV) Protocol: Client Extensions . Microsoft (14 марта 2007). — описание поддержки клиентских расширений в протоколе WebDAV. Дата обращения: 30 июля 2009. Архивировано 17 февраля 2012 года.
- RFC 2324 Informational «Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)» (англ.) (с «Гипертекстовый протокол управления кофеваркой (HTCPCP/1.0)»); IETF, 1 апреля 1998; Masinter L..
- KB 318380 Коды состояния служб IIS. Microsoft (4 декабря 2007). — список расширенных кодов состояния для протоколов HTTP и FTP. Дата обращения: 16 января 2010. Архивировано 17 февраля 2012 года.
- Справочник по кодам статуса HTTP. Яндекс. — обработка кодов состояния HTTP роботами Яндекса. Дата обращения: 2 мая 2018.
Что означает ошибка 500
Ошибка 500 (Internal Server Error) — это внутренняя ошибка сервера, причиной которой стали настройки веб-хостинга или проблемы с кодом сайта. Сообщение с текстом «500 ошибка сервера» является общим для группы неисправностей. По коду не понятно, где именно и вследствии чего произошел сбой. Известно только, что это сервер не смог обработать запрос пользователя и отправить ему нужный контент. Чтобы восстановить работоспособность сайта, придется проверить несколько возможных источников проблемы. В статье расскажем том, что означает ошибка 500, почему она появляется и как ее устранить.
Что делать при появлении ошибки?
Если вы попытались открыть веб-страницу, но увидели Internal Server Error 500, можно сделать следующее.
Поскольку ошибка исходит со стороны сервера, владельцы сайта, скорее всего, уже работают над ее устранением. Попробуйте подождать несколько минут или около часа, а затем перезагрузите страницу.
Также можно заглянуть на сайт downforeveryoneorjustme.com и вставить в поисковую строку URL-адрес страницы, на которой произошла внутренняя ошибка сервера.
Сервис сообщит, возникла ли проблема только у вас или же у всех пользователей.
Еще один вариант — связаться с владельцами сайта. Если вы предполагаете, что они еще не знают об ошибке, лучше всего сообщить им — это поможет и вам, и другим пользователям.
У большинства сайтов и сервисов есть аккаунты в социальных сетях, а на некоторых даже указаны email-адреса и номера телефона.
Где можно встретить ошибку 500?
Поскольку эта ошибка является частью спецификации HTTP для сайтов, она может появляться в любом браузере и на любом компьютере, в том числе на мобильных устройствах.
Ошибка 500 может отображаться различными способами, но в большинстве случаев сообщение включает код состояния 500, фразу «внутренняя ошибка сервера» или и то, и другое. Вот несколько распространенных примеров:
- 500 Internal Server Error;
- HTTP 500 — Internal Server Error;
- Temporary Error (500);
- Internal Server Error;
- HTTP 500 Internal Error;
- 500 Error;
- 500. That’s an error.
Обычно эта ошибка отображается в окне браузера, как стандартная веб-страница.
Как устранить ошибку 500 на сайте
Когда причина возникновения «error 500» точно установлена, можно выбрать соответствующий метод ее решения. Разберем способы решения каждой причины ошибки.
Htaccess — файл, в котором содержатся настройки веб-сервера и правила работы сайта. В нем прописывают важные параметры, влияющие взаимодействие пользователя с веб-ресурсом:
- опции PHP;
- права доступа к файлам;
- перенаправление с HTTP на HTTPS;
- условия переадресации с одной веб-страницы на другую;
- вид веб-страниц с ошибками, которые они будут иметь в браузере пользователя и т. д.
Чтобы понять, является ли htaccess причиной недоступности сайта, необходимо выполнить несколько действий:
- Проверьте файл на синтаксические ошибки.
- Обратите внимание на формат файла: правильным будет один из двух — ASCII или ANSI. Из этого следует следующий пункт.
- Убедитесь, что файл был создан в правильном редакторе: Notepad, Notepad++ и Sublime Text. Если для этой цели вы использовали Microsoft Word, файл будет иметь ошибочное расширение Unicode.
Ошибки в скриптах
Скрипты — сценарии, созданные для автоматического решения задач и расширения функционала сайта. Для поиска ошибки в скриптах владелец сайта может:
- Проверить, верно ли прописана функция.
- Узнать у хостинг-провайдера, поддерживает ли хостинг-компьютер нужную вам функцию.
- Проверить, правильно ли выбрана версия PHP.
Ошибки в плагинах и расширениях CMS
CMS — платформа, которую используют для создания сайта и управления его контентом. Ошибка может содержаться в коде самой CMS, а также в ее шаблонах и плагинах (дополнительных элементах из каталога). Другой причиной неисправности являются обновления плагинов, которые могут привести к несовместимости версий между всеми компонентами системы. Как решить проблемы:
- Открыть журнал операционной системы: если ошибка в CMS, он будет содержать ошибку 500 и сообщение «PHP Parse error: syntax error, unexpected». Журнал серверов Linux находится по адресу: /var/log/httpd/error_log.
- Найдите проблемную часть кода или плагина по пути, указанному в журнале системы.
- Отмените обновления плагина, вернув его к прежнему состоянию, или попробуйте заменить его другим, похожим по функционалу.
Не хватает оперативной памяти
При выполнении любых процессов на сервере задействуется его оперативная память. Если процесс трудоемкий, ему может понадобиться больше памяти, чем есть в его распоряжении. Когда ресурсы исчерпаны, возникает ошибка. Чтобы ее исправить, можно временно увеличить лимит памяти с помощью команды memory_limit. Расширяя лимит, помните об ограничении — нельзя указать число больше, чем есть на вашем личном сервере или хостинге.
Некорректные права на файлы и каталоги
Для файлов сайта устанавливаются правила, которые устанавливают действия, которые может с ним совершить та или иная группа пользователей. Устанавливаются права на read — чтение, write — запись и execute — выполнение. Каждое право имеет свое буквенное или числовое обозначение, например чтение — r или 4. Ошибки могут возникать, если разрешения для важных файлов установлены неправильно. Правильная конфигурация для прав — 755. Чтобы установить правильные настройки, можно воспользоваться командой: chmod 755 filename.
Что делать администратору при появлении ошибки?
Если ошибка 500 появилась на вашем сайте, попробуйте следующие способы.
Загляните в файл htaccess: даже небольшая синтаксическая ошибка может вызывать внутреннюю ошибку сервера. Не менее часто случается так, что этот файл неправильно отформатирован. Его нужно создавать в формате ASCII или ANSI, а не в Unicode. Следовательно, писать его следует в текстовом редакторе, например в Notepad, Notepad++ и Sublime Text, а не в Microsoft Word.
Чтобы проверить, является ли файл htaccess причиной ошибки, можно временно переименовать его и перезагрузить сайт. После этого сервер не будет обращаться к htaccess при загрузке страницы. Если сообщение об ошибке больше не появляется, значит стоит исправить этот файл или создать новый.
Проверить лог ошибок
Загляните в лог-файл, например для серверов Linux его можно найти по адресу /var/log/httpd/error_log. Попробуйте перезагрузить сайт, чтобы воспроизвести код ошибки 500, и посмотреть, как создается лог-файл. Это поможет быстро найти источник проблемы.
Проверить содержимое CGI-скриптов
Ошибки могут возникать, если разрешения для важных файлов установлены неправильно. Есть три типа прав:
- read (r) — чтение;
- write (w) — запись;
- execute (x) — выполнение.
Эти разрешения можно предоставлять трем типам пользователей:
- владельцу файла;
- группе пользователей;
- все остальным.
Права указываются либо с помощью сокращений r, w и x, либо с помощью числовых значений: 4 — для чтения, 2 — для записи и 1 — для выполнения. Они добавляются для каждого типа пользователей и идут один за другим: rwxr-xr-x (rwx — для владельца, r-x — для группы и r-x — для всех остальных) или 755.
По умолчанию должна быть установлена конфигурация 755. Если разрешения предоставляются иначе, может возникнуть ошибка. Эту настройку можно изменить с помощью команды: chmod 755 filename.
Если проблема не решится, можно также провести тестирование, предоставив все права для каждой группы: chmod 777 filename. Однако к этой настройке следует прибегать только для определения проблемы — если любой пользователь сможет переписывать файл, безопасность сайта окажется под угрозой.
Проверить плагины и компоненты
Новое ПО, надстройки и сторонние скрипты могут конфликтовать с текущей конфигурацией сервера. Чтобы выявить причину ошибки 500, попробуйте поочередно отключить или удалить программные дополнения.
И напротив, если вы недавно обновили ПО, текущие плагины и темы могут оказаться несовместимы с обновлением. Деактивация дополнений по порядку — лучший способ найти основную причину проблемы.
Увеличить объем оперативной памяти сервера
Чтобы это исправить, можно временно увеличить лимит памяти. Для этого добавьте в php.ini команду, подобную этой: memory_limit = 512M. Этот пример устанавливает лимит на 512 МБ.
Учитывайте, что хостинг-провайдер допускает лишь определенный лимит сеанса PHP в рамках используемого вами пакета. Если будет введено большее значение, сервер проигнорирует его. Также помните, что это лишь временное решение: как только сайт заработает, потребуется выяснить причину высокого потребления памяти. Высока вероятность, что в коде содержится ошибка.
Если ни один из этих способов не помог, стоит связаться с хостинг-провайдером. Но прежде чем сделать это, проверьте состояние серверов: при возникновении проблем многие провайдеры сообщают эту информацию на странице состояния или в социальных сетях.
В статье использовались материалы следующих источников:
Ошибка с кодом 500 (internal server error) – внутренняя ошибка сервера.
Значение 500 — код статуса протокола HTTP. Причина ошибки с таким кодом — неисправность конфигурации сервера, либо появление информации о том, что произошел отказ компонента. При ошибке 500 программное обеспечение работает, но есть серьезные внутренние проблемы, которые мешают запросам правильно обрабатываться.
Такая ошибка появляется у построенных на разных CMS сайтах.
Обзорный списокПравить
Ниже представлен обзорный список всех описанных в данной статье кодов ответа:
Диаграмма принятия веб-сервером решений на основе заголовков
Статистика по кодам ответа, сгенерированная анализатором логов Webalizer
Заключение
Устранение ошибки 500 лежит на плечах владельца веб-ресурса. Без вашего оперативного вмешательства пользователи надолго потеряют доступ к сайту, а поисковые сети могут снизить его ранжирование.