我想得到苏执行程序在 Debian Stretch (Apache 2.4.25) 上使用 PHP。
我加载了 Debian 软件包的默认模块集以及cgid
和php7.0
.
这是VirtualHost
我在测试系统上使用的块:
<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>
这可以通过简单的 perl 脚本正常工作,/var/www/cgi-bin
打印进程的 UID。该脚本打印1000
,验证 suexec 是否正常工作。我还得到了预期的行suexec.log
:
[2017-07-28 11:54:27]: uid: (1000/testuser) gid: (1000/testuser) cmd: moo.cgi
但是,当我使用类似的 PHP 脚本时,suexec
永远不会调用该脚本,并且该脚本以 Apache 用户身份运行。
如何让 suexec 与 PHP 脚本一起使用?
答案1
启用的 php7.0 模块处理您的 PHP 页面。禁用它,安装php-cgi并启用它,就像
AddHandler cgi-handler .php
Action cgi-handler /usr/bin/php-cgi7.0