Свяжитесь с нами
Support
www.

Internal Server Error или почему не работают директивы php_admin_value, php_value, php_flag?

22.09.2014
Сложность
4 мин.
241

htaccess-php-fastcgi-1

Достаточно часто встречаются подобные ошибки и вопросы, особенно если вы меняете хостера или сайт Ваш делаете в конструкторе, который в последствии сам генерирует вам целую пачку файлов. И вот вы залили скрипт на хостинг а в результате наблюдаете "Internal Server Error" - это означает в большинстве случаев, что сервер заблокировал обращение к скрипту.

Это может быть по следующим причинам:
1. Вы выставили неверные права на файлы или папки, которые противоречат политике безопасности - частый ответ в службе тех поддержки, но почему и какие верные никто толком не объясняет.
2. Либо вы используете неподдерживаемые директивы в файле .htaccess

Все это относится к режиму работы PHP. Рассмотрим кратко два основных режима работы PHP в разрезе использования дополнительных директив в файле .htaccess и 500 ошибки сервера:

1. Режим работы PHP как модуля Apache (mod_php);
2. режим работы PHP FastCGI;

Итак, чем же они принципиально отличаются и почему большинство хостеров используют php в режиме FastCGI?

Бытует множество версий и мнений, одни говорят что mod_php лучше чем fastcgi, другие наоборот. Основная причина почему используют FastCGI на виртуальном хостинге, где кроме вас могут находиться еще с десяток пользователей, а порой и сотен - это пресловутая безопасность.

mod_php:
в .htaccess будут работать директивы php_value, необходимы права 777 (что крайне небезопасно), папки и файлы создаются не от имени пользователя, а от имени apache.  А соответственно в случае взлома одного сайта, могут подвергнуться взлому или попросту удалению все остальные сайты находящиеся на сервере.
PHP FastCGI:
в .htaccess запрещены директивы php_value (появится 500 ошибка сервера), права 777 недопустимы (вопреки заблуждениям, стоит отметить, что для записи в папку более чем достаточно прав 755, а файлам 644), файлы и папки, а также исполнение скриптов происходит от имени пользователя. Закомментируйте или удалите эти директивы и ошибка исчезнет . В этом случае есть возможность локализовать пользователя от имени, которого происходит запуск несанкционированных почтовых рассылок, DDOS атак или попросту взлом других сайтов.

Таким образом хостеры в первую очередь заботяться о безопасности своих пользователей.

Важно заметить, что при 300-500 соединений ощутимой разницы для нагрузки на сервер не будет, будь то fastcgi или mod_php. Но при значении 1000 соединений значительно будет преобладать mod_php.  Это как всегда оставляет за владельцем сервера право выбора, и повод подискутировать на тему что лучше использовать. А для хостинг компаний или просто для серверов на которых размещено большое количество проектов - неоспоримый плюс в выборе в сторону FastCGI из соображений безопасности и надежности.

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

Были ли сведения полезными?
1