500-я ошибка возникает, когда сервер не может справиться с запросом клиента вследствие своих внутренних ошибок. Хорошо было бы обрабатывать такие ситуации и выдавать красивые сообщения об ошибках. В этой статье расскажу как это можно сделать.
Поскольку 500-я ошибка возникает в том числе и при невозможности разобрать php-код, то вероятно не лучшая идея использовать в генерации такой страницы php-код. Эту страницу следует делать простой статической html-страницей.
Сделаем ее такой:
<p>500-я ошибка!</p>
и сохраним как 500.html в корне сайта.
Большинство серверов используют в качестве вебсервера либо apache, либо nginx (часто бывает так, что nginx на фронтенде, а apache — на бекенде). Поэтому нужно разобрать 2 случая настройки таких страниц.
вебсервер Apache2 на фронтенде
В этом случае нужно в .htaccess прописать такие строки:
ErrorDocument 500 /500.html
ErrorDocument 502 /500.html
ErrorDocument 503 /500.html
ErrorDocument 504 /500.html
и это все, что нужно.
вебсервер Nginx на фронтенде
В этом случае, требуется в конфиге соотвествующего сайта в секции server написать:
error_page 500 502 503 504 /500.html;
После этого перезапустить nginx и все должно заработать.