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

Простыми словами: лог — это журнал, в который записывается информация об ошибках, запросах к серверу, подключениях к серверу, действиях с файлами и т.д.
Как вы видите, данных в логи записывается немало, поэтому они разделены по типам. За сведениями о нашей ошибке можно обратиться к логам ошибок (error_log). Обычно такие логи предоставляет служба поддержки хостинга, на котором размещен сайт. В Timeweb вы можете включить ведение логов и заказать необходимые данные в панели управления. Разобраться в полученных логах поможет статья «Чтение логов».
Как устранить ошибку
Теперь поговорим о том, как исправить ошибку 500. Вернемся к популярным причинам этой проблемы и рассмотрим наиболее эффективные способы решения.
Ошибки в файле .htaccess
У этого файла довольно строгий синтаксис, поэтому неверно написанные директивы (команды) могут привести к ошибке. Попробуйте поочередно удалить команды, добавленные последними, и проверьте работу сайта.
Также найти проблемную директиву можно с помощью логов ошибок (через те же инструменты разработчика в браузере). На ошибку в директиве обычно указывает фраза «Invalid command». Информацию о верном написании директивы или способе исправления ошибок в .htaccess вы можете найти в интернете. Не нужно искать, почему сервер выдает ошибку 500, просто введите в строку поиска название нужной команды или текст ошибки из логов.
Ошибки в скриптах сайта
Скрипт не запускается
Обычно это происходит, когда существует ошибка в скрипте или функция, которая не выполняется. Для успешного запуска скрипта функция должна быть верно прописана, поддерживаться сервером и выполняться от используемой версии PHP. Бывают ситуации, когда функция несовместима с определенными версиями PHP. Получить более подробную информацию о той или иной функции можно в интернете.
Не хватает оперативной памяти
Если в логах вы видите ошибку «Allowed memory size», для устранения ошибки 500 стоит оптимизировать работу скрипта. Вы можете воспользоваться специальными расширениями для анализа производительности скрипта или обратиться за помощью к специалисту, который поработает над его оптимизацией.
Если ваш сайт размещен на отдельном физическом или виртуальном сервере, можно попробовать увеличить максимальное использование оперативной памяти на процесс (memory_limit). На шаред хостинге этот параметр обычно не изменяется, но есть возможность купить хостинг помощнее.
Ошибки в CMS
Если код CMS содержит неверный синтаксис, это может вывести сайт из строя. В таком случае логи сообщат вам об ошибке 500 текстом «PHP Parse error: syntax error, unexpected». Так происходит, когда некорректно работает плагин (или тема, используемая в CMS, но реже) либо есть ошибки в коде. Ошибка может быть допущена случайно, произойти при обновлении плагина или версии CMS.
При чтении логов обратите внимание на путь, который следует за сообщением об ошибке, ведь он может указать на проблемную часть кода или плагин. Если проблема в плагине, для восстановления работы сайта переименуйте на время папку, в которой он расположен. Попробуйте обновить плагин или откатить его до прежней версии. Если ситуацию не удается исправить, от расширения стоит отказаться либо заменить его аналогом.

Информацию о других распространенных ошибках вы можете найти в статье «6 наиболее часто возникающих ошибок HTTP и способы их устранения».
Удачи!
- Предыдующая статья: Делаем собственную страницу ошибки 404
2019-12-01
Здравствуйте, уважаемый посетитель!
Сегодня в рамах рассмотрения системы обработки ошибок выполним необходимые действия по выводу пользователю сообщения о возникновении внутренней ошибки сервера Internal Server Error, соответствующей статусу HTTP 500.
Это необходимо сделать, так как никто не застрахован от возникновения подобных проблем. В таких случаях, если не предпринять соответстующих мер, пользователь в своем браузере будет видеть только лишь какой-нибудь ущербный, неполноценный вариант веб-страницы. Либо вообще пустой экран или страницу в несколько строк с непонятными для него техническими терминами.
И вот для того, чтобы упорядочить работу сайта, обеспечивая пользователя при любых ситуациях необходимой информацией, мы создадим собственную страницу 500.
А затем, для обеспечения на нее перенаправления, сформируем пользовательский обработчик фатальных ошибок PHP. Который в дальнейшем поможет нам обеспечить и другие возможности создаваемого механизма, такие как сохранение логов и отправка сообщений по email.
- Создание страницы 500
- Перехват и обработка фатальных ошибок PHP
- Буферизация вывода в PHP
- Дополнение файла .htaccess
- Проверка работы сайта при внутренней ошибке сервера
- Исходные файлы сайта
Создание страницы 500
В первую очередь создадим в корне сайта новый файл с соответствующим именем, например «page_500.php». И поместим в него код страницы, которая будет отображаться при возникновении ошибки 500. А выполним это аналогично тому, как мы это делали в предыдущей статье при создании страницы 404.
Правда, сделаем это с некоторым отличием, заключающимся в том, что в этот раз при ее формировании будем использовать только разметку HTML, исключая какое-либо использование PHP.
Ведь не логично применять фрагменты кода, которые в случае возникновения фатальной ошибки PHP могут повлиять на отправку страницы, предназначенную, как раз, для обработки таких нестандартных ситуаций.
Конечно, это не относится к применению функции header(), с помощью которой отправляется HTTP заголовок с кодом 500, соответствующий внутренней ошибки сервера (строка 2 в приведенном ниже коде).
kak-vyvesti-stranicu-oshibki-500_1
Рис.1 Файл «page_500.php» с HTML-кодом страницы 500
Как видно, данный вариант по структуре полностью соответствует предыдущей странице 404, но выполнен на чистом HTML. Причем все общие блоки: шапка, меню, основное содержание и футер включены непосредственно, без применения подключающих инструкций PHP.
Что касается оформления, то в данном случае этого не требуется, так HTML-код страницы мало чем отличается от предыдущей. И как следствие, все необходимые свойства уже ранее назначены и добавлены в таблицу стилей CSS.
И в этом можно убедиться, если сейчас открыть созданную страницу через адресную строку браузера, добавив к доменному имени ее адрес /page_500.php. Как и в предыдущем случае в начале сделаем это в обычном, десктопном варианте пользовательского устройства.
Рис.2 Вид созданной страницы 500
А теперь посмотрим как это будет выглядеть при малом разрешении экрана в одно колоночном исполнении.
Рис.3 Вид страницы 500 при малом разрешении экрана
Как видно, полученная страница по форме схожа с предыдущей 404. За исключением содержания, отражающего теперь информацию о возникновении внутренней ошибки сервера, соответствующей статусу 500 протокола HTTP.
Таким образом необходимая страница создана. И теперь осталось только обеспечить на нее перенаправление.
Перехват и обработка фатальных ошибок PHP
Как ранее отмечалось, внутренняя ошибка сервера наиболее часто возникает в следствии фатальных ошибок PHP. Причем такие случаи обычно сопровождаются остановкой скрипта. Отчего идентифицировать такую ошибку с помощью того же самого скрипта не получится. Так как в этом случае выполнение в нем каких-либо последующих действий не представляется возможным.
Как вариант решения этой проблемы — применение встроенной функции обратного вызова register_shutdown_function(), предназначенной для регистрации специальной пользовательской функции, не связанной с работой скрипта. И, следовательно, способной выполнить дальнейшие преобразования, несмотря на то, что сам скрипт остановлен.
И таким образом, в случае возникновения фатальной ошибки управление передается этой зарегистрированной функции, являющейся в данном случае обработчиком.
Как может выглядеть регистрация пользовательской функции и перехват в ней последней ошибки, остановившей работу скрипта, показано в следующем фрагменте PHP-кода.
-
//—-Перехват и обработка фатальных ошибок PHP—-
-
function fatal_php(){ //Пользовательская функция
-
$error = error_get_last(); //Получение информации о последней произошедшей ошибке
-
if ($error !== NULL && in_array($error[‘type’], array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR))){ //Если ошибка произошла и ее тип соответствует фатальной ошибке
-
$domen = ‘http://’.$_SERVER[‘SERVER_NAME’]; //Домен сайта
-
header(«Location: $domen/page_500.php»); //Редирект на страницу 500
-
exit; //Прекращение выполнения текущего скрипта
-
}
-
}
-
register_shutdown_function(‘fatal_php’); //Регистрация пользовательской функции обработчика фатальных ошибок PHP
-
?>
Рис.4 Перехват и обработка фатальных ошибок PHP
Здесь все строки кода сопровождаются комментариями, поэтому подробно описывать каждую из них, нет смысла.
Можно лишь отметить, что регистрация пользовательской функции выполняется, как ранее было отмечено, с помощью register_shutdown_function(), расположенной в строке 11.
А сама функция обработчика с именем fatal_php() (поз.3÷10) в начале возвращает ассоциативный массив с описанием последней произошедшей ошибки (функция error_get_last() поз.4). А затем в случае, если выявленная ошибка относится к одному из четырех необходимых типов (E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR), то с помощью функции отправки HTTP-заголовка header() (поз.7) выполняется редирект по указанному аргументом «Location» адресу, соответствующему странице 500.
В случае, если фатальная ошибка PHP возникает в процессе формирования тела страницы при отправленном HTTP-заголовке, то при установках по умолчанию, в соответствии с протоколом HTTP должна возникнуть ошибка Cannot modify header information — headers already sent by (), означающая невозможность изменения заголовка после его отправки. Более подробно об этом и о том, как решить эту проблему мы посмотрим в следующем разделе статьи.
Таким образом при использовании созданной пользовательской функции, в случае, если из-за какой-то критической ошибки PHP-скрипт остановлен, обработчик ее обнаружит и выполнит необходимые действия по ее идентификации и дальнейшей обработке.
В данном случае обработка заключается всего лишь в выполнении редиректа на страницу 500. Но в дальнейшем, когда мы перейдем к сохранению логов и оправке сообщений по email, то здесь же будем использовать и другие, необходимые для этого преобразования.
И последнее, на что необходимо обратить внимание, функция обработчика должна быть расположена в самом начале кода шаблона главной страницы файла index.php. Иными словами, чтобы все остальные PHP-инструкции, используемые при формировании веб-страницы, выполнялись только после ее регистрации. В противном случае при остановке скрипта обработчик не будет вызван и, соответственно, не сможет выполнить свою задачу.
Буферизация вывода в PHP
В созданном обработчике фатальных ошибок PHP (рис.2) с помощью функции HTTP-заголовка header() (поз.7) предусматривается редирект на страницу 500.
Однако, здесь следует учесть одно обстоятельство, а именно: в случае редиректа, выполняемого в момент формирования тела веб-страницы, уже после отправки HTTP-заголовка, непременно должна последовать ошибка Cannot modify header information — headers already sent by ().
Обусловлено это следующим. По умолчанию сервер отправляет в браузер данные веб-страницы по мере их готовности, в процессе выполнения PHP-скрипта. При этом в соответствии с протоколом HTTP, сервер в ответ на запрос должен в первую очередь отправить служебные заголовки, а уж только потом код самого тела страницы. И протоколом HTTP не допускается ситуация, когда в момент передачи тела страницы производится повторная оправка HTTP-заголовка. О чем и говорит описание вышеуказанной ошибки.
В подтверждение этому можно проверить работу созданного обработчика по состоянию на данный момент, с заведомо внесенной критической ошибкой PHP.
На скриншоте показан вариант вывода страницы «Получить скидку», у которой в код PHP файла poluchit-skidku.php специально внесена синтаксическая ошибка.
Рис.5 Ошибка при изменении заголовка после его отправки
Как видно, здесь в области основного содержания, при обнаружении в ней фатальной ошибки Parse error и остановки скрипта, присутствует также и ошибка Cannot modify header information — headers already sent by (), означающая невозможность изменения заголовка в момент передачи кода данного блока веб-страницы.
А для того, чтобы решить эту проблему и иметь возможность изменять в любой момент HTTP-заголовки, применяется, так называемая буферизация вывода в PHP.
Суть ее в том, что в этом случае при выполнении PHP, сервер не оправляет страницу по мере ее готовности, а складывает полученный код в определенный буфер, параллельно формируя HTTP-заголовки, которые в обычном режиме не допускается оправлять в момент передачи тела страницы.
И только после того, как скрипт выполнит все заложенные в него операции, то всё, что в конечном итоге оказалось в буфере, разом отправляется в браузер пользователя в правильном порядке, как это определенно протоколом HTTP — сначала заголовки, а уж потом страница, сформированная скриптом.
В PHP существуют несколько функций, предназначенных для работы с буфером. Но для данной задачи мы будем использовать только две из них ob_start() — для включения буферизации вывода и ob_end_flush() — для отправки данных из буфера и отключения буферизации.
Схематично для генерируемой HTML-страницы это можно представить следующим образом.
kak-vyvesti-stranicu-oshibki-500_2
Рис.6 Буферизация вывода в PHP
А ниже показано, как в итоге будет выглядеть код шаблона главной страницы в файле index.php после дополнения его обработчиком фатальных ошибок PHP и элементами буферизации вывода PHP (светлым фоном обозначены дополнительные фрагмента кода).
kak-vyvesti-stranicu-oshibki-500_3
Рис.7 Файл index.php с обработчиком ошибок и буферизацией вывода
Следует отметить, что для оптимизации файла index.php, ранее размещенный в начале шаблона главной страницы PHP-код, предназначенный для получения данных при формировании динамической страницы, перенесен в файл start.php, который подключается соответствующей инструкцией в строке 13.
Таким образом буферизацию вывода HTML-страницы, генерированной скриптом PHP, мы выполнили. Однако, для полноценной работы сайта при обработке ошибки 500 необходимо сделать еще одно небольшое дополнение, которые мы сейчас и рассмотрим.
Дополнение файла .htaccess
Приведенные выше преобразования предназначены для выполнения редиректа на страницу 500 в случае прерывания работы скрипта при фатальных ошибках PHP.
Но для того, чтобы это происходило и в других случаях внутренней ошибки сервера, необходимо в файл .htaccess добавить директиву ErrorDocument, аналогичную той, которую мы использовали ранее при редиректе на страницу 404. Только теперь в ней должен быть указан соответствующий адрес /page_500.php.
А заодно, в целях безопасности полезно будет вообще отключить отображение системных сообщений на экране пользователя. Так как теперь возникающие по каким-либо причинам ошибки будут фиксироваться собственным механизмом обработки ошибок и нет необходимости их выводить в браузер. Тем более, что в определенных случаях такая излишняя для пользователя информация может быть использована недоброжелателями в качестве уязвимости сайта.
В итоге файл .htaccess следует дополнить следующими директивами, которые обеспечат выполнение вышеперечисленных действий.
-
ErrorDocument 500 /page_500.php
-
php_flag display_errors 0
Рис.8 Редирект 500 в файле .htaccess
Таким образом мы сделали все необходимые преобразования для вывода страницы 500. И теперь можно проверить, как это в реальности будет работать.
Проверка работы сайта при внутренней ошибке сервера
Проверку обработки внутренней ошибки сервера выполним на примере возникновения фатальной ошибки PHP, что позволит удостовериться в корректной работе, как созданного обработчики фатальных ошибок, так и процесса буферизации вывода генерируемой страницы и редиректа на страницу 500.
Для этого в код PHP временно внесем ту же самую синтаксическую ошибку, которую ранее мы делали на промежуточном этапе (рис.5). И посмотрим, как теперь будет обработана такая ситуация.
Рис.9 Вывод страницы 500 при фатальной ошибке PHP
Как видно, теперь критическая ошибка отработана должным образом, с перенаправлением на страницу ошибки 500.
При желании, можно проверить работу сайта и при других искусственно созданных фатальных ошибках. И во всех случаях результат должен быть один — отображение собственной страницы 500. Что в итоге и требовалось получить.
В следующей статье мы создадим механизм обработки не фатальных ошибок PHP, где с помощью собственного обработчика будет обеспечиваться их перехват и сохранение сообщений в соответствующем журнале.
.
Исходные файлы сайта

- Файлы каталога www
- Таблицы базы данных MySQL
Дополнительные материалы бесплатно предоставляются только зарегистрированным пользователям.
Для скачивания исходных файлов необходимо авторизоваться под своим аккаунтом через соответствующую форму.
Для тех кто не зарегистрирован, можно это сделать на вкладке Регистрация.
С уважением,
- Следующая сатья: Перехват и обработка не фатальных ошибок PHP
Если у Вас возникли вопросы, или есть какие-либо пожелания по представлению материала, либо заметили какие-нибудь ошибки, а быть может просто хотите выразить свое мнение, пожалуйста, оставьте свои комментарии. Такая обратная связь очень важна для возможности учета мнения посетителей.
Буду Вам за это очень признателен!
В статье мы расскажем, как исправить ошибку (код состояния) 500 со стороны пользователя и администратора сайта, а также подробно разберём, что такое ошибка запроса 500.
Что такое внутренняя ошибка сервера 500
Код ошибки 5хх говорит о том, что браузер отправил запрос корректно, но сервер не смог его обработать. Что значит ошибка 500? Это проблема сервера, причину которой он не может распознать.
Сообщение об ошибке сопровождается описанием. Самые популярные варианты:
- Внутренняя ошибка сервера 500,
- Ошибка 500 Internal Server Error,
- Временная ошибка (500),
- Внутренняя ошибка сервера,
- 500 ошибка сервера,
- Внутренняя ошибка HTTP 500,
- Произошла непредвиденная ошибка,
- Ошибка 500,
- HTTP status 500 internal server error (перевод ― HTTP статус 500 внутренняя ошибка сервера).
Дизайн и описание ошибки 500 может быть любым, так как каждый владелец сайта может создать свою версию страницы. Например, так выглядит страница с ошибкой на REG.RU:
Как ошибка 500 влияет на SEO-продвижение
Для продвижения сайта в поисковых системах используются поисковые роботы. Они сканируют страницы сайта, проверяя их доступность. Если страница работает корректно, роботы анализируют её содержимое. После этого формируются поисковые запросы, по которым можно найти ресурс в поиске.
Когда поисковый робот сканирует страницу с ошибкой 500, он не изменяет её статус в течение суток. В течение этого времени администратор может исправить ошибку. Если робот перейдёт на страницу и снова столкнётся с ошибкой, он исключит эту страницу из поисковой выдачи.
Проверить, осталась ли страница на прежних позициях, можно с помощью Google Search Console. Если робот исключил страницу из поисковой выдачи, её можно добавить снова.
Код ошибки 500: причины
Если сервер вернул ошибку 500, это могло случиться из-за настроек на web-хостинге или проблем с кодом сайта. Самые распространённые причины:
- ошибки в файле .htaccess,
- неподходящая версия PHP,
- некорректные права на файлы и каталоги,
- большое количество запущенных процессов,
- большие скрипты,
- несовместимые или устаревшие плагины.
Решить проблему с сервером можно только на стороне владельца веб-ресурса. Однако пользователь тоже может выполнить несколько действий, чтобы продолжить работу на сайте.
Что делать, если вы пользователь
Если на определённом ресурсе часто возникает ошибка 500, вы можете связаться с владельцем сайта по инструкции.
Перезагрузите страницу
Удаленный сервер возвращает ошибку не только из-за серьёзных проблем на сервере. Иногда 500 ошибка сервера может быть вызвана небольшими перегрузками сайта.
Чтобы устранить ошибку, перезагрузите страницу с помощью сочетания клавиш:
- на ПК — F5,
- на ноутбуке — Fn + F5,
- на устройствах от Apple — Cmd + R.
Обратите внимание! Если вы приобретаете товары в интернет-магазине и при оформлении заказа появляется 500 Internal Server Error (перевод — внутренняя ошибка сервера), при перезагрузке страницы может создаться несколько заказов. Поэтому сначала проверьте, оформился ли ваш предыдущий заказ. Если нет, попробуйте оформить заказ заново.
Очистите кэш и cookies браузера
Кэш и cookies сохраняют данные посещаемых сайтов и данные аутентификаций, чтобы в будущем загружать веб-ресурсы быстрее. Если на ресурсе уже был статус ошибки 500, при повторном входе на сайт может загружаться старая версия страницы с ошибкой из кэша, хотя на самом деле страница уже работает. Очистить кэш и куки браузера вам поможет инструкция.
Если ни одно из этих действий не решило проблему, значит, некорректно работает сам сервер сайта. Вернитесь на страницу позже, как только владелец решит проблему.
Что делать, если вы владелец сайта
В большинстве случаев устранить проблему может только владелец сайта. Как правило, ошибка связана с проблемами в коде. Реже проблемы могут быть на физическом сервере хостинг-провайдера.
Ниже рассмотрим самые популярные причины и способы решения.
Ошибки в файле .htaccess
Неверные правила в файле .htaccess — частая причина возникновения ошибки. Чтобы это проверить, найдите .htaccess в файлах сайта и переименуйте его (например, в test). Так директивы, прописанные в файле, не повлияют на работу сервера. Если сайт заработал, переименуйте файл обратно в .htaccess и найдите ошибку в директивах. Если вы самостоятельно вносили изменения в .htaccess, закомментируйте новые строки и проверьте доступность сайта.Также может помочь замена текущего файла .htaccess на стандартный в зависимости от CMS.
Найти директиву с ошибкой можно с помощью онлайн-тестировщика. Введите содержимое .htaccess и ссылку на сайт, начиная с https://. Затем нажмите Test:
Произошла непредвиденная ошибка
На экране появится отчёт. Если в .htaccess есть ошибки, они будут выделены красным цветом:
500 ошибка nginx
Активирована устаревшая версия PHP
Устаревшие версии PHP не получают обновления безопасности, работают медленнее и могут вызывать проблемы с плагинами и скриптами. Возможно, для работы вашего веб-ресурса нужна более новая версия PHP. Попробуйте сменить версию PHP на другую по инструкции.
Установлены некорректные права на файлы и каталоги сайта
В большинстве случаев корректными правами для каталогов являются «755», для файлов — «644». Проверьте, правильно ли они установлены, и при необходимости измените права на файлы и папки.
Запущено максимальное количество процессов
На тарифах виртуального хостинга REG.RU установлены ограничения на количество одновременно запущенных процессов. Например, на тарифах линейки «Эконом» установлено ограничение в 18 одновременно запущенных процессов, на тарифах «+Мощность» ― 48 процессов. Если лимит превышен, новый процесс не запускается и возникает системная ошибка 500.
Такое большое число одновременных процессов может складываться из CRON-заданий, частых подключений с помощью почтовых клиентов по протоколу IMAP, подключения по FTP или других процессов.
Чтобы проверить количество процессов, подключитесь по SSH. Выполните команду:
ps aux | grep [u]1234567 |wc -l
Вместо u1234567 укажите ваш логин хостинга: Как узнать логин хостинга.
Чтобы посмотреть, какие процессы запущены, введите команду:
Вместо u1234567 укажите логин услуги хостинга.
Командная строка отобразит запущенные процессы:
Код ошибки 500
Где:
- u1234567 — логин услуги хостинга,
- 40522 — PID процесса,
- S — приоритет процесса,
- /usr/libexec/sftp-server — название процесса.
Процесс можно завершить командой kill, например:
Вместо 40522 укажите PID процесса.
Чтобы решить проблему, вы также можете:
- увеличить интервал запуска заданий CRON,
- ограничить количество IMAP-соединений в настройках почтового клиента. Подробнее в статье Ограничение IMAP-соединений,
- проанализировать запущенные процессы самостоятельно или обратившись за помощью к разработчикам сайта.
Если вам не удалось самостоятельно устранить ошибку 500, обратитесь в техподдержку.
Скрипты работают слишком медленно
На каждом виртуальном хостинге есть ограничения на время выполнения скрипта. Если за установленное время скрипт не успевает выполниться, возникает ошибка сервера 500. Для решения проблемы обратитесь к разработчику сайта и оптимизируйте скрипты. Если оптимизировать нельзя, перейдите на более мощный вид сервера.
У пользователей VPS есть возможность увеличить максимальное использование оперативной памяти на процесс, но лучше делать скрипты меньшего размера.
Ошибка 500 на сайте, созданном на WordPress
WordPress предлагает много плагинов для создания хорошего сайта. Они значительно расширяют возможности CMS. Однако они же могут нарушать работу сайта и вызывать ошибку 500. Вызвать ошибку могут как недавно установленные плагины, так и старые.
Для начала проверьте, нужно ли обновить плагины. Часто устаревшие плагины перестают работать и вызывают проблемы работы сайта. Если все плагины обновлены, но 500 Internal Server Error остаётся, отключите все плагины, чтобы убедиться, что именно они мешают работе сайта. Как только станет понятно, что виноват один из плагинов, отключайте их по очереди, пока не найдёте тот, который нарушает работу сервера.
Как отключить плагин в WordPress
- 1.
-
2.
Перейдите во вкладку «Плагины» ― «Установленные».
-
3.
Нажмите Деактивировать у плагина, который, как вам кажется, повлиял на работу сайта:
Если все ваши действия не решили проблему или вы не уверены в своих технических знаниях, обратитесь к службе технической поддержки. Сообщите время обнаружения проблемы и опишите все действия, которые вы предприняли перед обращением. Специалисты сделают детальную проверку настроек вашего сайта и при необходимости обратятся к администраторам сервера на стороне хостинг-провайдера.
Если на вашем сайте возникают ошибки, то обычно посетители видят такие страницы:
Или такие:
В этой статье мы расскажем, как сделать так, чтобы при ошибках посетители сайта видели необычные страницы ошибок. Для этого потребуется, чтобы на хостинге была включена поддержка правил из файла .htaccess. На многих хостингах такая поддержка есть.
Страница ошибок — обычная страница написанная на языке разметки HTML. Мы предполагаем, что у вас уже есть готовая страница.
В качестве примера мы будем использовать такую страницу:
Скачать пример страницы ошибки 500.
Загрузим файл 500.html из архива на хостинг. Файл нужно разместить в каталоге с сайтом, на том же уровне, что и файлы index.php или index.html.
В том же каталоге, куда вы загрузили файл 500.html найдите файл .htaccess. Если его еще нет, то создайте его. Добавьте в начало файла следующие строки:
ErrorDocument 500 /500.html
Как сделать это на хостинге NetAngels
— откройте [панель управления](https://panel.netangels.ru/hosting/#/)
— кликните по нужному сайту
— откройте вкладку «Файлы»
— выберите «Открыть файловый менеджер».
— перейдите в каталог `www`
— найдите файл `.htaccess`, правым кликом из контекстного меню выберите «правка».
— добавьте в начало файла строки выше
— сохраните файл
Чтобы проверить, что страница доступна, откройте в браузере ссылку
mysite.ru/500.html
Замените mysite.ru на имя вашего сайта. Теперь при появлении на сайте ошибки 500 будет отображаться страница, которую вы видите по ссылке.
Приведенная страница будет работать только для ошибок Apache, но не для ошибок PHP. Если вы хотите использовать те же самые страницы ошибок для PHP, то требуется обрабатывать их через PHP. Например:
<?php
if( http_response_code() == 500 )
{
header("Location: https://mysite.ru/500.html" );
}
http_response_code(500);
?>
Аналогичным образом можно сделать страницы для других популярных ошибок — 403 (Доступ запрещен) и 404 (Страница не найдена).
Готово!
List of creative, interactive, and animated 500 error page templates.
500 error is a generic error message when an unknown error occurs on the server-side. If you are a web developer or tech guy, these numbers will be meaningful for you. For general users, it is just another error on your website, they can’t find the difference. Whether you are designing a most common 404 error page or a 500 error page, you have to be clear about the error to the user. Rather than plainly showing 500 error or 404 error, you can be more human and sensible on your error page. These 500 error page templates are properly designed and some of them are funny, which you can use on any website.
While designing an error page, three things that you have to keep in mind is
- Clearly mention the reason for the error
- Proper guidance to reach the working web page
- Cool emotional design
These 500 error page templates give you enough space to add your message and some of them give you proper options like page refreshing and a link to the support team. We have also included 404 error page templates in this list. Since these are simple HTML templates, you can change the contents and use it for your 500 error page design.
Colorlib Error Page Template v9
The creator has used a traditional warning board design to highlight the error-code in this error page template. You can show the 500 error code on the signboard and give detailed information of the error in the given text space below. A call to action button is also given in this template, which you can use to refresh the page or can use it to redirect the user to the corresponding page. There are no animations in the default design, but you can add one easily to this template because of its friendlier CSS script.
Info / Download Demo
Colorlib Error Page Template v8
Those looking for a special 500 error page template for their dark theme website will love this V8 template. The creator has used bold texts and stylish fonts to deliver a simple and visually appealing design. Plus, bright colors for hover effects and error code get the user’s attention easily. You can add a glow effect to the bright color letters in the error code. Take a look at our (CSS glow effects) design collection for fresh design ideas. Since this template uses the latest bootstrap and CSS 3 script, it can effortlessly handle all modern effects.
Info / Download Demo
Colorlib Error Page Template v20
The creator has used the error code as a backdrop in this error page template. You can use this template for all types of error pages because of its simple design. More than ample space is given for texts, error code, and you even have space to add extra elements if you want. Since this is an HTML5 error page template, you can edit it as per your requirements. The creator has included all code files in the download file to make the developer’s job simple. Overall, the v20 is a developer-friendly error page template.
Info / Download Demo
Colorlib 404 v13
This one is a simple error page template. The big red alert symbol clearly shows the user hit an error page. More than ample text space is there on this template, so it can give a clear error message to the audience. Plus, you can also suggest what the user can do. For example, the creator has given a homepage link in the default design. You can either give a support team link or email address to let the user easily get in touch with you on business websites and online service websites. V13 is a simple HTML5 error page template with a clean code script; hence, developers can easily work with this template.
Info / Download Demo
Colorlib 404 v4
This is primarily a 404-page template with a minimal design. Since it is an HTML template, you can change it and use it for the 500 error pages. You can show a big error message in a cool-looking font on this error page. Below the error message, you have a call to action button to take the user right back to the homepage. The creator has made it extremely simple for quick customizations. Another best part about this template is you get all the files organized in proper order. Hence you can work with this template easily and use it for the error page you like.
Info / Download Demo
Colorlib 404 v6
Modern colors are used effectively to give a cool night effect. The V6 is the darker version of the error page template mentioned above. Though it is a 400 error page template by default, you can easily change them and use it for your 500 error page. This design also get a big call to action button to take the user to the homepage. You can map the call to action button to the page you want. You get a cool color-changing hover effect for the call-to-action button in the default design. For more cool hover effects, take a look at our CSS hover effects collection.
Info / Download Demo
Colorlib 404 v18
There are no other better elements than emojis to express the feeling correctly. In this example, the creator has neatly used a sad emoji and a clear message about the error. Though it is a 404 error page by default, you can use it for 500 error pages as well. The straightforward HTML code structure will make your customization work a lot easier. If you like to liven up the design a bit, you can add subtle hover effects to the design. For modern hover effects, take a look at our CSS hover effects examples collection.
Info / Download Demo
Colorlib 404 v15
This one is an animated error page template. The creator has used a three-dimensional-like design for this error page. Bright border colors and hover effects make the design even more engaging and realistic. You have more than enough text space in this design to show your message and also have space to add call-to-action buttons. Just like the design, the code structure is also neat and simple. Even beginners can use this template easily in their design or project.
Info / Download Demo
Colorlib 404 v17
This error page design also uses emojis like in the V18 template mentioned above. The creator has used a classic text character emoji in this design, giving this contemporary design a classic touch. Shadow and depth effects to the call to action button give a floating appearance to the button. The effects feel natural since this template is made using the latest web development framework. You can easily add any modern colors and effects as per your needs. As the whole design is perfect, you can use this template straight away in your projects or websites.
Info / Download Demo
Colorlib 404 v14
In this template, the creator has effectively used creative elements and fresh colors. The design is clean and straightforward. Users won’t get annoyed when they hit an error page like this. You have space to add your social media profile links right below the error message so that the user can reach you easily if they desperately need your service immediately. You can use this error page for almost all types of modern websites and professional websites. By making a few changes to the design, you can easily fit this design on your website or application.
Info / Download Demo
Colorlib 404 v7
This template is designed sensibly. You get useful options like a search box and a link to get back to the homepage. Giving handy options on the error page lets the user easily find what they want, and you still get a chance to hold the user to your site. Since it is a concept model, the creator has kept the search box design simple. Take a look at our bootstrap search box examples collection for more interactive and user-friendly search tools. The flexible code structure of this template will let you easily add the features and options you want in your error page.
Info / Download Demo
Colorlib 404 v5
Colorlib 404 v5 error page template is a sensibly designed error page template. In this design, you have the option to add a search box and a text link to take the user to the previous page. Since it is a simple HTML template, you can change the contents and use them for your 500 error page design. The creator has effectively used the typography to present the content to the users. Since this design uses the latest HTML5 and CSS3 scripts, you can use your own custom animation on this design. In the download file, you get all the scripts and files so that you can work easily with this design.
Info / Download Demo
Colorlib 404 v3
This is another clean-looking error page template. With big letters and ink-black texts, this template clearly shows the error to the user. It is a very simple design if you want you can add features like search bars and call-to-action buttons. The creator of this design has used the typography effectively to make this design clean yet attractive. This simple error page template goes well with any modern website. Since this template is made using the HTML5 and CSS3 scripts, working with it will be an easy job for the developers.
Info / Download Demo
Colorlib 404 v2
Colorlib 404 v2 is a very simple 404 error page template. But you can use them easily for the 500 error page design. In this design, you have the option to add a search box. Since 500 errors are mostly unknown server errors, giving the option to search or refresh the page will be a helpful option for the user. If you are running an online application like scheduling tools, you can leave a link to the support team so that you can fix it for the user. If you are running a web-based application, take a look at our free dashboard template collection to easily maintain your users.
Info / Download Demo
Colorlib 404 v10
If you are making an error page for a trendy looking modern website, this error page design might fit perfectly. The error message with a picture in effect looks attractive on the clean white background. Below the error message, you have a big text space to add your message and a call to action button. Shadow and depth effects are used effectively to differentiate important element from the rest of the elements on the error page. Though this error page is originally designed for 404-page design, you can easily customize and use the design for 500 error page as well.
Info / Download Demo
Animated 500 Error
This animated 500 error page template has a whimsy touch. The creator has used an astronaut and ground station disconnection scenario in this design to deliver the error message. Though it is an animated error page template, the whole concept is made purely using the HTML and CSS script. Those who want to make a simple design that stands out from the crowd will love this concept.
Info / Download Demo
Github 500 Error Page Animation
As the name implies, this 500 error page uses the Github concept. The creator has used an interactive hover effect to deliver an engaging user experience, apart from the Github character and error message. The entire code script used to make this design is shared with you on the CodePen editor. You can edit the code as per your requirement and visualize it in the editor before taking it to your project.
Info / Download Demo
Animated Error Page Template
This 500 error page template creator has given us an interactive error page design. You can see that the eyeballs move according to your cursor movement in the default design. If you like to add some funny and interactive elements to your error page design, this code script might come in handy. Since this error page design includes some dynamic actions, the creator has used a few javascript lines along with the HTML and CSS script. You can take the code snippet and edit it as per your requirements.
Info / Download Demo
Sample 500 Error Page
You get a big full-screen 500 error page design in this example. The creator has used line animation for the word 500 at the start. Animations are smooth and swift, so loading won’t take much time. Plus, using a traditional red color scheme will make the error statement crystal clear to the audience. You have space to add the error message at the bottom of the big 500 number. The creator has kept the message simple in the default design, but you can add texts as per your requirement.
Info / Download Demo
Error 500 Alert
If you are looking for simple 500 error page templates, this design will impress you. The glitch effect adds some life to this simple design and the creator hasn’t overdone the glitch effect, hence, the design looks professional and can be used for all types of websites. Like most other 500 error page templates, this one is also made mostly using the CSS3 script. Hence you can easily utilize this code even on your existing website. An ample amount of text space is given in the default design, so you can mention the cause to the users and proper guidance.
Info / Download Demo
If crazy 500 error page templates are your thing, this design might inspire you. The 500 error number is made to rotate in a dreamy fashion to show that there is an error. We also have a text space to properly note the issue. Since it is a concept model, there might be some design flaws, but nothing is major and can be fixed easily. The entire code script is shared with you on the CodePen editor, hence you can edit and visualize the result on the editor. To give you a smooth animation effect, the creator has used both CSS3 and Javascript in this design. Based on the code script you prefer, you can trim the code and use it in your design.
Info / Download Demo
Yeti 404 Page
Thought this one is a 404 error page design, you can use this concept to make 500 error page templates. Since it is an HTML based design, you can easily edit and customize the design and content. The creator has given an interactive and well-animated error page design. The Yeti character and the torchlight paths are animated smartly in this template, so it gets a realistic feel. Like the design, the code script for this error page design is complex. But like all other 500 error page templates, the creator of this template also handled the code professionally so you can easily edit and use it.
Info / Download Demo
Error Page
The creator Kyle Lavery has given us a simple and generic error page design, which you can use for all types of error pages and 500 error page templates. If you are not a big fan of animated error pages or don’t have much time to create one unique design, simple error page designs like this will do the job. With a relevant background image and clear text, you can mention the error and how long it will take to recover. Since it is a very simple design, it is created mostly using the CSS3 script. Hence you can simply edit the code as per your needs and use it on your website.
Info / Download Demo
500 Error By Brian
This is a very common error page template which you can use for all types of error. Animated cogs are used to symbolically indicate the malfunction. The error heading is made big so that the user can understand the error as soon as it appears on the screen. A link to the homepage is sensibly placed right below the error message. You can either give a link to the homepage or the previous page so that the user can easily go back to the place where they left. The design and the code structure are also kept simple for easy integration.
Info / Download Demo
500 Internal Error
This is another version of the 500 error template mentioned above. The creator of this design has followed a minimal look. If you make a 500 error page for a (minimal website) or website template, this design will fit perfectly. In this design also you get the cog animation. You get a fluid animation effect since the animation is made using the CSS3 script. Plus, the code script is kept simple, so the page won’t take much of the user’s internet data. You can use this design on your existing website by making a few customizations. The developer has given you a basic idea, if you want you can add your own features to make the error page helpful for the users.
Info / Download Demo
500 Broken Error
Another smart error page design is to mention what happened clearly and giving suggestions to the user. The developer of this 500 error page has used the same clear message design. A big content block with an option to refresh is placed right below the error message. To make the error page interesting, a broken iMac image is used. If you want a more realistic iMac image, take a look at our iMac mockup collection. The whole design is made purely using the HTML and CSS3 script to get plenty of customization options. For more animation examples, take a look at our CSS animation collection.
Info / Download Demo
Bicycle 500 error
Bicycle 500 error, as the name implies, you get an animated bicycle in this error page design. The bicycle moves backward to indicate that something went wrong internally. At the top left corner, you have space to show your error message. There is more than enough space in this error page design, which you can use to add your own creative message. The simple design gives you plenty of room for improvement. Plus, the simple code structure gives you enough option for customizations and to add your own features. The developer has shared the entire code structure with you so that you can easily work on the design.
Info / Download Demo
CSS Potato 500
Some times you can be funny in your error page. In this design, the developer has used a potato with misplaced eyes and nose to indicate the error. The potato character image and the animation is designed using the HTML5 and CSS3 script, hence you get realistic images and natural colors. At the bottom of the character, you have space to add your error message. Since it is a demo, the creator has kept the error message simple. You can use a sarcastic comment in the error message that matches the funny theme of this error page design. Check the info link given below to have a hands-on experience on the code structure used to make this design.
Info / Download Demo
Pure CSS Buggy Error
Pure CSS Buggy Error is an interactive error page design. The animation is clean and attractive, making the user less annoyed when they hit an error page. As the name implies, animated bugs, I mean the real bugs are used in this design. When the user hovers over the 500 error, the number becomes a loveliness of ladybugs and scatters around the page. Another advantage of this design is it is made purely using the CSS3 script. The developer has used CSS3’s feature to the fullest to give you an interactive and a light-weight error page design.
Info / Download Demo
Error 500 Glitch
This error page design is very simple yet functional, which you can use in any modern website. The developer has used a glitch effect to denote the error. Right below the big 500 error notification, you have space for the text message with an option to add a text link. The link is given for the homepage in the default design, but you can map it to other pages you like. This clean glitch effect is made using only a few HTML and CSS3 script lines. Since it uses the latest code scripts, you get a beautiful and smooth animation effect.
Info / Download Demo
500 Error Neon Lighting
If you are making an error page for a restaurant website or website template, this design will be a good choice. A broken neon light effect is used for the 500 error message in this design. The default design is simple yet effective. You don’t have any other option or feature in the default design, but you can add them. The code structure is kept very simple for the integration and customization part. There is a lot of room for improvement in this design and you can use your creativity to fill the space. Speaking of neon lights and signage boards, take a look at our sign mockup collections to elegantly promote your business.
Info / Download Demo
500 Error By Nels Setterlund
When wordings combined with the interactive animation effects, you can clearly explain your message to the user. Here in this design, you get a dead mac window floating to indicate the error. You have enough text space to add your message below the error animation. This design fits in perfectly for any professional and business website. In the default design, you can give a link to your support team. If you are running an online support service, giving a link to your support team will help the user easily resolve their queries.
Info / Download Demo
500 Error Page By Greg Thomas
This is a simple error page template. The bright color error message is visible on the dark theme layout. You also have an option to add a call to action button at the bottom. Though this design uses the CSS3 script, it is a simple static error page template. If you want you can add your animation effect to this design. Look at our CSS button collection with cool hover effects to spice up your design. Because detailings make the great design stand out from the normal design. The developer has shared the code used to make this design in the CodePen editor. You can visualize your customizations before using them on your website or your project.
Info / Download Demo
500 Error – Animated Text Fill
The creator of this design has used a creative animation effect. As the name implies, the developer has used a text fill effect for the 500 error. On the bright red color scheme, the effect clearly shows that something is wrong. But, if you need you can change the color scheme to the one you like. The developer has used the HTML, CSS3, and Javascript to give you this smooth animation effect. If you wish to use this design on your website, you have to do little optimizations. Except for the animation, all other options given in this demo are not fully functional. You have to work manually to make this design fully functional.
Info / Download Demo
500 Error Log File
The developer has used the server theme in this design smartly to indicate the 500 error. You have a simple error message on one side and an animated element on the other. The error message loads faster since the animation is taken on the separate element. If you need you can use the log file animation or can remove it to make the design simple. The error log file design is completely interactive, because of the latest HTML, CSS3, and Javascript, you get a fluid response from this animation effect.
Info / Download Demo
500 Error By Adam Kuhn
This is a simple animated error page template. The developer has used a black flag theme to show the error. This simple yet attractive animation effect is made using the CSS3 script. Since it is a unicode design, developers can easily work on this design. Based on your design needs, you can easily customize this design. Though the animated error message is attractive, there are no other options like page refreshing or back to the previous page. Since the code structure is kept very simple, you can easily add your features.
Info / Download Demo
500 Error By Edwin Chen
This is another funny message based error page design. Here the main image is kept still and the error message is animated. You get a typewriting effect in the default design, but you can change with the effect you like. For more text effect inspirations take a look at our CSS text effects collection. Though the effect is simple, the developer has used three scripts for this design. Hence, you have to be more careful with your customizations before using it on your website. Since the effect is simple, you can trim the code to the structure you follow.
Info / Download Demo














































