Назад | Перейти на главную страницу

Как запускать файлы PHP от имени другого пользователя с помощью Apache и FastCGI?

Согласно более старым вопросам, таким как используя mod_fcgid вместо mod_php и PHP как CGI или модуль Apache?по касательной некоторые Другой вопросы) Я пришел к выводу, что запуск PHP как CGI или FastCGI заставит мои файлы .php запускаться как владелец вместо Apache пользователь (пользователь, который запускает Apache).

В phpinfo(); функция утверждает, что Server API = CGI/FastCGI

Однако, когда я тестирую запущенного пользователя, он все еще Apache т.е. <?php echo exec('whoami'); ?> возвращается Apache.

Я также пробовал, что Джереми Баус предложил в вопросе, который я упомянул, но PHP whoami все еще возвращается Apache.


Должен ли тот факт, что «Server API» phpinfo равен «CGI / FastCGI», достаточен для того, чтобы обычные пользователи запускали php-файлы в качестве владельца?

(Означает ли это, что PHP не работает с mod_php?)

Или есть еще какие-то административные задачи, которые нужно выполнить, или что-то, вероятно, неправильно настроено?

IMHO (более свежий и) лучший способ запустить PHP FastCGI - использовать PHP-FPM, что среди множества опций также позволяет использовать разных пользователей для разных веб-сайтов.

Из Официальный сайт:

Возможность запускать воркеры с другим uid / gid / chroot / environment и другим php.ini (заменяет safe_mode)

Но использования FastCGI самого по себе недостаточно, чтобы использовать владельца файла (и не существует такой вещи, как «автоматическое использование владельца файла»: вы должны на самом деле настроить это виртуальный хост за виртуальным хостом (или как хотите).

Suexec может запускать cgi от имени пользователя, отличного от пользователя apache. Если вы хотите запустить PHP таким образом, вас также может заинтересовать suPHP.