Com o PHP-FPM, o SuExec não é mais necessário se você quiser alterar o fluxo de seus processos PHP.
Você pode usar as diretivas 'usuário' e 'grupo' do arquivo de configuração do php-fpm para executar o mesmo coisa.
Eu instalei o php, o apache e o fastcgi_handler por:
emerge dev-lang/php www-apache/mod_fastcgi_handler
Consegui fazê-lo funcionar atualizando as linhas relevantes em /etc/apache2/modules.d/70_mod_php5.conf
para:
# AddHandler application/x-httpd-php .php .php5 .phtml
# AddHandler application/x-httpd-php-source .phps
AddHandler fcgi:/var/run/php-fpm.socket .php .php5
e /etc/conf.d/apache2 para
APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC -D LANGUAGE -D PHP5 -D FASTCGI_HANDLER"
No meu documento, tenho o seguinte arquivo para verificar a instalação:
<?php
echo '<pre>';
var_dump(exec('whoami'));
var_dump(php_sapi_name());
Eu, então, tenho o seguinte vhost:
<IfDefine DEFAULT_VHOST>
<VirtualHost localhost:80>
ServerName local.testdomain.com
ServerAlias local.testdomain.com
SuExecUserGroup foobar foobar
DocumentRoot "/home/foobar/workspace/local.testdomain.com"
<Directory "/home/foobar/workspace/local.testdomain.com">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
</IfDefine>
Quais resultados para: 501 Erro
[Wed Jul 10 01:52:10 2013] [error] [client ::1] (13)Permission denied: access to / denied (filesystem path '/home/foobar/workspace/') because search permissions are missing on a component of the path
Movendo a raiz do documento para fora do diretório do usuário, o test.php parece ser executado corretamente, no entanto, recebo este resultado:
string(6) "nobody"
string(8) "fpm-fcgi"
Espero que seja:
string(6) "foobar"
string(8) "fpm-fcgi"
Minha suposição é que, se eu conseguisse que o SuExec funcionasse corretamente, ele poderia atravessar o diretório do usuário sem problemas.
Em minha dedução, isso confirma que o PHP-FPM está funcionando corretamente, no entanto esta diretiva: " SuExecUserGroup foobar foobar " não. O SuExec certamente está funcionando porque recebo a seguinte linha nos logs:
[Wed Jul 10 02:09:47 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
Espero que alguém possa apontar para mim o que estou perdendo e como posso corrigi-lo.
Obrigado antecipadamente.
Estou usando o Gentoo btw.
Com o PHP-FPM, o SuExec não é mais necessário se você quiser alterar o fluxo de seus processos PHP.
Você pode usar as diretivas 'usuário' e 'grupo' do arquivo de configuração do php-fpm para executar o mesmo coisa.
Tags apache-2.2 php-fpm gentoo suexec