Ошибка 500 Internal Server Error. Как устранить?

Если в результате установки системы управления сайта или же перемещения сайта на «новый» хостинг всплывает ошибка 500 Internal Server Error – это может свидетельствовать не о допущенных Вами ошибках, а о том, что сработала защита сервера.
Это же еще какая защита? – хотите спросить
Дело в том, что большинство сервером с целью увеличения безопасности запускают SUPHP. Работа данной службы, если позволите так назвать, заключается в том, что все скрипты, их работа запускается от имени пользователя, что в свою очередь, позволяет проводить мониторинг активность клиентов Хостинга. Для чего нужен такой контроль? Это уже вопрос совсем иного характера, но если кратко, то чтобы пресекать «злостную» активность своих клиентов.

Но вернемся к нашей ошибке. Эта ошибка является побочным эффектом технологии SUPHP, которая может возникнуть при неправильной закачке на сервер копии сайта или какого-то приложения. Чтобы ее избежать или устранить необходимо:

1. Проверить права на все папки сайта. Для записи файла достаточно установить 755 и если Вы считаете, что все-таки нужно устанавливать полный доступ – 777, то это уже слишком и к тому же это небезопасно. При таком значении прав, любой другой пользователь Хостинга, который находится на этом же сервере, может поместить в эту папку все, что ему придет в его светлую голову;

2. Проверить права на файлы сайта. Они должны иметь сочетание цифр – 644, правда кроме тех файлов, которые будут перезаписываться или изменятся. Для таких файлов устанавливаем 755;

3. Файл .htaccess и его содержание. Этот файл не должен содержать строк, настроек, которые начинаются с php. Например, php_value, php_flag, Если эти строки присутствуют, то php работает как CGI, поэтому такие настройки вносятся в файлы php.ini, но а в .htaccess – такие строки убираем или комментируем;

4. Снова таки, в .htaccess директиву Options +FollowSymLinks  изменяем на Options +SymLinksIfOwnerMatch, а MultiViews — удаляем;

5. Если присутствует параметр +ExecCGI – убираем.

Да, чуть не забыл. Поскольку CGI-скрипты должны иметь окончания строк в формате UNIX (\n), а не в формате Windows (\r\n), то их загрузку на сервер нужно производить с помощью FTP и не в коем случаи в режиме ASCII. Если в результате работы CGI-скрипта(-ов) формируются неверные HTTP-заголовки ответа, то решение этой задачи можно отыскать в error_log.

Исправили? Все сделали как надо и ошибка исчезла? Хорошо! Но а если она по прежнему выводится вместо страницы сайта, тогда самое время писать и беспокоить техническую поддержку Хостинга.