Чтобы установить причину, по которой возникает ошибка 500, просмотрите логи. Возможно, в файле error.log есть запись, указывающая на причину проблемы. Рассмотрим самые распространенные варианты.
Недостаток ресурсов
Если причина в этом, проблема решается очень просто - обратитесь к хостинг-
провайдеру с просьбой об увеличении ресурсов.
Наличие неработоспособных скриптов или лимитированное время на их исполнение.
Если в течение определенного промежутка времени, который часто составляет минуту, сервер не может обработать скрипты, то появляется ошибка 500 Internal Server Error.Также вебмастера могут столкнуться с подобной ошибкой, если будут запускать CGI-скрипт из-под Apache, в случае, если времени, указанного в настройках сервера, недостаточно на выполнение скрипта.
Если скрипты ранее работали, и проблемы появились, например, при переезде на другой хостинг, проблема может быть вызвана другими причинами. Например, тем, что сервер блокирует запросы.
Ошибки в выставлении прав доступа
Значения прав на файлы должны быть равны 444 или 644. CHMOD для папок не должен отличаться от 755, т.е просматривать их может только владелец ресурса. Права доступа к скриптам должны быть обозначены как 600. В противном случае сервер, в целях безопасности, блокирует доступ к скрипту, даже если тот работоспособен.Если причина, по которой появилась ошибка 500, в этом, используйте FTP-менеджер для изменения прав доступа. С этими функциями прекрасно справляется Filezilla.
В файле .htaccess содержатся неподдерживаемые директивы
Проверьте, присутствует ли в корне сайта, либо в другом месте, файл .htaccess. Если таковой имеется, откройте его при помощи любого текстового редактора. Можете использовать Блокнот.
Ошибка 500 может появиться, если вы используете сервер, работающий на suPHP, т.е. поддерживающий php.ini. Если в файле .htaccess присутствуют директивы, изменяющие параметры PHP-окружения, могут появиться проблемы. Самые распространенные директивы - php_admin_flag, php_flag и php_value.
Часто в качестве инструкций включаются глобальные переменные - Register Globals.
Данная проблема решается очень просто - нежелаемые параметры можно просто удалить. Другой вариант - закомментировать их с помощью добавления знака # в начало строки. Между решеткой и названием директивы должен стоять знак пробела.
Если вам обязательно нужно выполнение закомментированных параметров, их можно прописать в файле php.ini. При этом использовать php_admin_flag, php_flag и php_value не нужно - просто обозначьте их по принципу: "название требуемого параметра = On".
Фатальная ошибка PHP
Такая проблема может возникнуть, если PHP работает по принципу CGI. В этом случае нужно тщательно проверить программный код, диагностировать и исправить ошибки. Обратите внимание на то, что окончания строк CGI-скриптов не должны быть в формате Виндоус (\r\n), а должны быть обозначены в формате UNIX (\n).
Если ни одно из предлагаемых решений не устраняет ошибку, обратитесь к хостеру. Подробно разъясните ему, когда и после каких действий появилась ошибка 500. Попросите указать причины проблемы и оказать помощь в ее устранении. В случае, если хостер не в состоянии выяснить, почему появилась ошибка http 500 Internal Server Error, обратитесь в службу поддержки CMS, которую вы используете. В письме обязательно укажите все подробности, в т.ч. - комментарии хостинг-провайдера относительно вашей ситуации.