PHP open_basedir с FastCGI - PullRequest
       21

PHP open_basedir с FastCGI

0 голосов
/ 29 января 2012

Будут ли у меня проблемы с использованием open_basedir для перемещения файлов из одного домена в другой на моем сервере, если я использую fastCGI?

Я хочу переместить загруженные файлы из:

/var/www/vhosts/example-1.com/httpdocs/

до:

/var/www/vhosts/example-2.com/httpdocs/

Будет ли FastCGI разрешать это, учитывая, что пользователь будет определенным для используемого домена? Таким образом, для example-1.com пользователь будет example-1. Сможет ли этот пользователь переместить файлы в каталог example-2, если я определю директиву open_basedir?

1 Ответ

2 голосов
/ 29 января 2012

Не похоже, что suEXEC используется, поэтому FastCGI, скорее всего, будет работать от имени того же пользователя, с которым работает веб-сервер (apache, nobody, daemon, lighttpd и т. Д.).

В этом случаепользователь FastCGI не будет иметь права создавать и записывать файлы в различные пользовательские каталоги.Если вы установите права доступа 777 для папки «uploads» в одном из ваших vhosts, то он может сохранять файлы там.Предостережение: файлы будут принадлежать пользователю веб-сервера (apache и т. Д.), И теперь пользователь vhost не будет владеть этими файлами и не сможет их изменять.Это тот случай, независимо от open_basedir.Если это ваш выделенный сервер и все ваши vhosts принадлежат вам, вы можете изменить владельца веб-сервера на определенные файлы / папки, но предпочтительнее использовать suEXEC, так как в этом случае FastCGI будет записывать файлы с использованием пользователя vhosts.как владелец.

У вас по-прежнему будут проблемы с разрешениями при копировании файлов на другой vhost, поскольку они будут принадлежать другому пользователю, но ваш сценарий может быть предоставлен пользователю как конечному пользователю, илидобавьте всех пользователей в общую группу, чтобы у них было разрешение на чтение / запись группы.

suExec - более безопасный вариант, но его может быть сложно настроить правильно.Вы используете Apache, lighttpd или что-то еще?

...