====== suPHP: запуск php-скриптов под Apache ====== Эта утилита позволяет выполнять скрипты [[tag:php]] с привелегиями его владельца. Столкнулся я с ней, используя [[tag:apache|Apache 2.x]]. Для него есть модуль mod_suphp. Пользу этой технологии переоценить трудно. Как известно, сервер Apache запускается от имени отпределенного пользователя и группы (у меня это www-data:www-data, и дальше я буду опирать на эти имена). А соответственно и php скрипты выполняются от имени этого пользователя в не зависимости, от того, для какого виртуального сервера это происходит. Это не является проблемой, до тех пор, пока ваши скрипты не пишут, и тем более не создают никакие файлы. Для того что бы php скрипт мог писать в файл, можно включить пользователя www-data в группу, которой принадлежит файл, и соответственно разрешить запись членам группы. То же справедливо и для каталогов. Подводные камни показываются когда создаётся новый файл. Владельцем созданного файла будет пользователь www-data. Если же воспользоваться модулем mod_suphp, то php скрипты будут запускаться от имени владельца скрипта, и соответственно новые файлы и каталоги будут принадлежать этому же владельцу. При умолчальных настройках доступ на запись в файл скрипта должен иметь только владелец, иначе будет происходить ошибка сервера. Но, всё можно исправить в файле конфигурации, разрешив соответствующие параметры: ; Security options allow_file_group_writeable=false allow_file_others_writeable=false allow_directory_group_writeable=false allow_directory_others_writeable=false Я не проверял, может ли скрипт писать сам в себя или в другие скрипты, но стоит внимательно следить за тем, какие данные скрипт пишет в файлы, во избежании недоразумений. Хочу отметить, что всё это я проделывал на тестовом сервере поднятом для экспериментов и отладки сайта. Полагаю, что на профессиональных интернет-хостингах существуют более продвинутые решения для комфорта клиентов. Так же следует обратить внимание, что бы конфигурационном файле ''/etc/suphp/suphp.conf''. Был правильно установлен параметр ''docroot''. Он определяет в какой директории и поддиректориях могут находится php-скрипты. --- //[[plumbum@rambler.ru|Ivan A-R]] 04.05.2006 01:23// {{tag>php web server article linux apache}} ~~DISCUSSION~~