O módulo php7.0 habilitado lida com suas páginas PHP. Desative-o, instale o php-cgi e ative-o como
AddHandler cgi-handler .php
Action cgi-handler /usr/bin/php-cgi7.0
Estou tentando obter o suexec trabalhando com o PHP no Debian Stretch (Apache 2.4.25).
Eu tenho o conjunto de módulos padrão do pacote Debian carregado mais cgid
e php7.0
.
Este é o bloco VirtualHost
que estou usando no meu sistema de teste:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
SuexecUserGroup testuser testuser
</VirtualHost>
Isso funciona corretamente com um script perl simples em /var/www/cgi-bin
que imprime o UID do processo. O script imprime 1000
, verificando se o suexec está funcionando. Eu também recebo a linha esperada em suexec.log
:
[2017-07-28 11:54:27]: uid: (1000/testuser) gid: (1000/testuser) cmd: moo.cgi
No entanto, quando eu uso um script PHP semelhante, suexec
nunca é chamado e o script é executado como o usuário do Apache.
Como posso fazer com que o suexec funcione com scripts PHP?
O módulo php7.0 habilitado lida com suas páginas PHP. Desative-o, instale o php-cgi e ative-o como
AddHandler cgi-handler .php
Action cgi-handler /usr/bin/php-cgi7.0
Tags php debian suexec apache-httpd