Настройка пользователя и группы Apache динамически
В веб-сервере Apache есть ли способ установить пользователя и группу по-разному между виртуальными хостами? Я хочу запустить PHP-скрипт с разрешения владельца (в mod_php).
2 ответа
Решение
Используйте одно из следующего:
- suPHP - запускать PHP как пользователь
- suExec - запускать CGI как пользователь (если вы запускаете PHP как CGI)
Они будут запускать PHP от имени пользователя, указанного вами в конфигурации VirtualHosts.
Скорее всего, ваш Linux-дистрибутив уже будет где-то в репозитории.
- У Ubuntu saucy есть suPHP, доступный во "вселенной".
- В CentOS и Fedora его нет в обычном репо, но он доступен в RPMForge, например: http://www.rpmfind.net/linux/RPM/dag/redhat/el6/x86_64/mod_suphp-0.7.1-1.el6.rf.x86_64.html
См. http://forums.cpanel.net/f5/confusion-suphp-suphpexec-apache-suexec-117633.html
Вы можете использовать apache2-mpm-itk, который позволяет настроить пользователя и группу Apache для каждого виртуального хоста.
apt-get установить apache2-mpm-itk
nano /etc/apache2/sites-available/mydomain.com
<VirtualHost *:80>
ServerAdmin webmaster@mydomain.com
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /home/myuser/mydomain.com
Options -Indexes
AssignUserID myuser mygroup
</VirtualHost>
См. Создание и настройка виртуального хоста Apache для получения дополнительной информации.