Ошибка 500 "Internal Server Error" обычно может возникать в следующих случаях:
1 Использование в файлах .htaccess недопустимых конструкций. В частности, инструкции php_value и php_flag допустимы только при работе PHP в режиме mod_php, который на нашем хостинге не используется. При работе в режиме CGI или FastCGI подобные конструкции приводят к ошибке. Если Вам необходимо изменить какие-то настройки PHP, это всегда можно сделать через панель управления. Также к ошибке приводит использование инструкций от Russian Apache.
2 Слишком долгая работа скрипта. Кроме собственных ограничений PHP на время работы скрипта (max_execution_time) также существуют ограничения со стороны веб-сервера: если веб-сервер не получает никакого ответа от скрипта в течение 60 секунд, скрипт считается зависшим и его работа принудительно завершается с выдачей ошибки 500.
3 Скрипт пытается получить больше памяти, чем положено по тарифу. Опять же, кроме внутреннего PHP-шного memory_limit на нашем хостинге используется менеджер памяти, который следит за количеством памяти, запрашиваемым скриптами для работы. Если скрипт начинает потреблять больше памяти, чем ему положено по тарифному плану, включая утечки памяти самого PHP или других интерпретаторов, его работа принудительно завершается.
4 В панели управления или в php.ini включены не совместимые друг с другом расширения php. Например, одновременное включение eaccelerator и APC, либо eaccelerator и XCache почти наверняка будет приводить к ошибке Segmentation Fault и, как следствие, к ошибке Internal Server Error на сайте.
5 Скрипт возвращает HTTP-заголовки, которые веб-сервер не может распознать и не понимает как интерпретировать.
Более подробную информацию о том, почему ошибка 500 "Internal Server Error" возникла на Вашем сайте, вы можете получить в файле error.log, который включается через панель управления хостингом. Обратите внимание, что ведение error.log включается только на время.
Источник _www.netangels.ru/support/overview/error500/