2 votes

PHP-FPM SuExecUserGroup ne fonctionne pas

J'ai installé php, apache, et fastcgi_handler par :

emerge dev-lang/php www-apache/mod_fastcgi_handler

J'ai réussi à le faire fonctionner en mettant à jour les lignes pertinentes dans /etc/apache2/modules.d/70_mod_php5.conf

à :

# AddHandler application/x-httpd-php .php .php5 .phtml
# AddHandler application/x-httpd-php-source .phps
AddHandler fcgi:/var/run/php-fpm.socket .php .php5

et /etc/conf.d/apache2 à

APACHE2_OPTS="-D DEFAULT_VHOST -D INFO -D SSL -D SSL_DEFAULT_VHOST -D SUEXEC -D LANGUAGE -D PHP5 -D FASTCGI_HANDLER"

Dans la racine de mon document, j'ai le fichier suivant pour vérifier l'installation :

<?php
echo '<pre>';
var_dump(exec('whoami'));
var_dump(php_sapi_name());

J'ai alors le serveur virtuel suivant :

<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>

Ce qui aboutit à : 501 Erreur

[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

En déplaçant la racine du document en dehors du répertoire de l'utilisateur, le test.php semble être exécuté correctement, mais j'obtiens ce résultat :

string(6) "nobody"
string(8) "fpm-fcgi"

Je m'attends à ce que ce soit le cas :

string(6) "foobar"
string(8) "fpm-fcgi"

Je suppose que si je parviens à faire fonctionner SuExec correctement, il pourra parcourir le répertoire de l'utilisateur sans problème.

Dans ma déduction, cela confirme que PHP-FPM fonctionne correctement, cependant cette directive : " SuExecUserGroup foobar foobar "ne le fait pas. SuExec fonctionne sûrement car j'obtiens la ligne suivante dans les journaux :

[Wed Jul 10 02:09:47 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)

J'espère que quelqu'un pourra m'indiquer ce qui me manque et comment je peux éventuellement y remédier.

Merci d'avance.

J'utilise Gentoo.

1voto

Brian Tkatch Points 21

Avec PHP-FPM, SuExec n'est plus nécessaire si vous souhaitez changer l'uid de vos processus PHP.

Vous pouvez utiliser les directives 'user' et 'group' de la directive Fichier de configuration php-fpm pour faire la même chose.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X