Главная Облако тегов     Подписка на ленту обновлений (RSS) XMPP (Jabber) совместимые службы мгновенных сообщений. К примеру Google Talk, Gizmo, jabber.org Пишите письма О сайте
Вы находитесь здесь: Заметки экспериментатора » suPHP: запуск php-скриптов под Apache
Translations of this page:

suPHP: запуск php-скриптов под Apache

Эта утилита позволяет выполнять скрипты PHP с привелегиями его владельца.

Столкнулся я с ней, используя 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-скрипты.

Ivan A-R 04.05.2006 01:23

Дискуссия

nmind, 2007/11/20 13:10

Хорошее быстрое решение. К сожалению, тормозит вполне заметно. Тормоза появляются исключительно в первые микросекунды. Видимо, это то время, в которое апач запускает скрипт через cmd.

У меня тоже есть по нему дока .) http://wiki.tutorial.ru/index.php/SuPHP_Install

login: tut; password: tut.

Ivan A-R, 2008/02/27 11:30

Полагаю на тестовой платформе тормоза, не самая большая беда =) Иногда они даже полезны, что бы погонять получившийся скрипт ;-)

Дмитрий, 2009/03/22 23:52

Иван, а подскажите, может вы в курсе, какие проблемы могут возникнуть, если на сервер виртуального (shared) хостинга в течение долгого времени работавшего в «обычном» режиме (апач и РНР, как они есть), ставится suPHP?

И вот это:

«Доступ на запись в файл скрипта должен иметь только владелец. Иначе будет происходить ошибка сервера»

это что получается, если какой-то из файлов, принадлежащих CMS, был открыт для записи группе или даже всем (что, конечно, не очень хорошо), то после (или перед) установки suPHP надо будет отлавливать все такие файлы, иначе рано или поздно жди глюков?

Enter your comment (wiki syntax is allowed):
Краткая справка
  • **полужирный**
  • //курсив//
  • > цитата
  • [[http://link | Заголовок ссылки]]
Больше о синтаксисе...
За исключением случаев, когда указано иное, содержимое этой вики предоставляется на условиях следующей лицензии:CC Attribution-Noncommercial-Share Alike 3.0 Unported
suphp.txt · Последние изменения: 2009/03/23 10:50 От plumbum