httpd.conf 文件:
LoadModule fcgid_module modules/mod_fcgid.so
AddHandler fcgid-script .php
FCGIWrapper /usr/local/php5 .php
# manual
MaxRequestsPerProcess 1000
FcgidMaxProcesses 200
FcgidProcessLifeTime 7200
MaxProcessCount 500
FcgidIOTimeout 400
FcgidIdleTimeout 600
FcgidIdleScanInterval 90
FcgidBusyTimeout 300
FcgidBusyScanInterval 80
ErrorScanInterval 3
ZombieScanInterval 3
DefaultMinClassProcessCount 0
DefaultMaxClassProcessCount 3
MaxRequestLen 20468982
<VirtualHost *>
ServerName hostname
DocumentRoot /home/web
ServerAdmin [email protected]
<IfModule mod_suphp.c>
suPHP_UserGroup web web
</IfModule>
SuexecUserGroup web web
UserDir disable
</VirtualHost>
这是我的包装:
#!/bin/sh
exec /usr/local/bin/php
我的错误是:
在 /usr/local/apache2/logs/suexec_log 中
[2019-09-03 06:55:28]: user mismatch (daemon instead of www)
/usr/local/apache2/logs/错误日志
suexec policy violation: see suexec log for more details
[Tue Sep 03 06:55:28 2019] [warn] [client 127.0.0.1] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server
[Tue Sep 03 06:55:28 2019] [error] [client 127.0.0.1] Premature end of script headers: phpinfo.php
更新:
我已经编辑:
/usr/local/apache2/bin/suexec -V
-D AP_DOC_ROOT="/"
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www"
-D AP_LOG_EXEC="/usr/local/apache2/logs/suexec_log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="www"
但是我没有收到任何错误,也没有发现任何东西......
答案1
suexec 文件表明它仅在底层用户是 www 时才会起作用。该网站似乎正在作为守护进程运行。您可以通过在 httpd.conf 文件中输入用户 www 来更改此设置。顺便说一句,该 httpd.conf 文件看起来很空,可能在您找到它的目录中的其他地方包含或附加了其他文件。这可能是已经放置用户指令的地方。
您的包装器 shell 肯定会返回错误,因为它所做的只是启动 php 程序。我不确定如果没有要运行的程序,它会做什么。Apache 期望任何程序的输出都包含正确的 HTTP 标头,这些标头不会自动生成。