#1
|
|||
|
|||
Объясните, почему пхп так себя ведет:
Виртуальный хост запущен под определенным Юзером и Группой, т.е, не (apache.apache) или (nobody.nobody), ПХП работает в режиме SAFE MODE. Я ожидаю, что когда в скрипте вызываю функцию - " mkdir ("testdir",0777); ", будет создан каталог testdir , с правами Юзера и Группы, под которым запущен этот вирт-хост, и атрибутами 777. Я прав ? Дело в том, что пхп создает эту папку, но только с правами apache.apache, и атрибутами 755 вместо 777. И создает, при условии, что верхняя по дереву папка имеет атрибуты 777. (Ну это понятно, так как получается пхп лезет в папку, как apache.apache, не являясь владельцем этой папки и не имеющим право писать в нее) Я не пойму, почему в этой ситуации " mkdir ("testdir",0777); ", пхп работает под apache.apache !? |
#2
|
|||
|
|||
Потому, что PHP скомпилирован как модуль, а процесс apache вне зависимости от user/group внутри virtualhost (которые только SuEXEC интересуют) работает под основными user/group.
Соответственно, PHP надо собрать как CGI-скрипт. |
#3
|
|||
|
|||
Или выключить SAFE... ?
Пробовал выключать для вирт-хоста, так при запуске, раз через раз вываливалась ошибка связаная с SAFE..., типа "нет дочтупа юзеру такому к такой папке, потому, что она чужая". Такое чувство, что автоматически включался режим SAFE... |
#4
|
|||
|
|||
Чтото не сростается. Не вижу здравости в том , как оно должно работать.
Я думаю разработчики панели плеск, не глупые люди, раз сделали так: Установлена панель плеск. Вирт хосты запущены под Юзером.Группой . ПХП работает модулем в апаче, в режиме SAFE MODE. Логично предположить, что пхп, например функцией mkdir(....), будет создавать папку, принадлежащую Юзер.Группа , а не апач.апач . Иначе, пхп наплодит папок, а по ФТП, юзер ничего не сможет сделать с ними, потому, что ни его папки будут, а апача. Здравости и логики ни капли. Скажите, если я выключаю режим SAFE MODE в одном вирт-хосте, не может ли это быть причиной некорректной работы пхп в других вирт-хостах? |
#5
|
|||
|
|||
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (avik @ 30 Ноя. 2002, 01:00)</td></tr><tr><td id="QUOTE">Вирт хосты запущены под Юзером.Группой .[/QUOTE]<span id='postcolor'>
Главное заблуждение. Все процессы Apache работают под одним пользователем. Все модули в них, естественно, тоже. Есть SuEXEC - он позволяет запустить из-под Apache _другой_ процесс с заданными пользователем и группой. |
#6
|
|||
|
|||
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (ptitov @ 30 Ноя. 2002, 11:27)</td></tr><tr><td id="QUOTE">0--></span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (avik @ 30 Ноя. 2002, 010)</td></tr><tr><td id="QUOTE">Вирт хосты запущены под Юзером.Группой .[/QUOTE]<span id='postcolor'>
Главное заблуждение. Все процессы Apache работают под одним пользователем. Все модули в них, естественно, тоже. Есть SuEXEC - он позволяет запустить из-под Apache _другой_ процесс с заданными пользователем и группой.[/QUOTE]<span id='postcolor'> КАЖИСЬ ЭТО ТОЧНО ТАК. И все это похоже на огромную за...цу. Бред полный! На php.net, вычитал, что вродебы в версии апача >2.0 както этот вопрос решен. Иначе, решения для пхп почти нет. А особенно, если вирт-хосты создаются автоматом, с стандартным набором конфигурации. Как я понял, mkdir(), создает папку в любом случае с правами апача, только если включен safe режим, пхп не даст это сделать, но тогда про подобные функции можно забыть. Реальный пример, вчера отключил safe режим, а сегодня уже клиент спрашивает, почему я не могу удалить папку?! ж) Вот так з.... |
#7
|
|||
|
|||
ошибочка, не обращайте внимания.
|
#8
|
|||
|
|||
А всё потому, что PHP надо ставить не как модуль, а как CGI. Тогда он запускается SuEXEC'ом и никаких проблем нету.
|
#9
|
|||
|
|||
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Цитата (ptitov @ 30 Ноя. 2002, 14:48)</td></tr><tr><td id="QUOTE">А всё потому, что PHP надо ставить не как модуль, а как CGI. Тогда он запускается SuEXEC'ом и никаких проблем нету.[/QUOTE]<span id='postcolor'>
Неудобства от метода CGI, в неустойчивости соединений с БД? Так мне кажет это только память гребет, а толку никакого. Есть ли в этом методе минусы по отношению к модульному методу? |
#10
|
|||
|
|||
Ну не так-то оно и сильно память гребёт
Хотя, разумеется, быстродействие чуть ниже. Но другого выбора то нету. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хамское поведение АГАВЫ | любознательный | Мусор | 43 | 01.11.2010 13:01 |