PHP-FPM SuExecUserGroup não está funcionando

1

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.

    
por Stoked PHP Engineer 09.07.2013 / 20:28

1 resposta

1

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.

    
por 25.08.2013 / 17:10