我的网站都工作得很好…我不知道什么时候发生了,因为我注意到它在一个星期后(我猜也许在系统升级后),但所有我的VirtualHosts脱机与可怕的“脚本的提前结束头文件:php-fcgid-wrapper“500错误。
SuExec日志给了我这个每个网站:
[2012-07-16 00:45:02]: uid: (1001/site) gid: (1001/site) cmd: php-fcgid-wrapper [2012-07-16 00:45:02]: command not in docroot (/var/www/site/fcgi-bin/php-fcgid-wrapper)
这不是(或者至less不应该)是真的…我用--with-suexec-docroot=/srv/www设置自动编译Apache 。 不过,我尝试了一个理智的检查,看看SuExec实际上认为它有什么文字根据:
$ suexec -V suexec policy violation: see suexec log for more details
对于这些日志声称:
[2012-07-16 01:07:52]: too few arguments
用sudo试了一下 一样。 所以,即使这样做没有意义,也不能正确地诊断问题。
我尝试的另一件事是将所有内容从/srv/www移动到默认文档根目录/var/www ,以查看在升级过程中是否可能恢复为原始存储库版本。 更新我的VirtealHosts,重新启动Apache,但仍然有相同的500错误。
还有什么可能导致这个?
你需要重新编译suexec.c –with-suexec-docroot = / srv / www
你不需要重新编译它。 你可以使用这个软件包在debian或ubuntu上设置一个自定义path:
apt-get install apache2-suexec-custom
安装软件包之后,会有一个特殊的目录,您可以在其中为每个用户设置suexecpath。 应该有一个示例文件为www-data用户:
/etc/apache/suexec/<some-user-name>
如果你没有Debian或Ubuntu,你必须寻找这样的软件包,或者用正确的docroot重新编译suexec(参见suexec doc )。 这个参数是:
--with-suexec-docroot=DIR
你必须检查,如何做你的发行。
使用以下命令查找fcgidconfiguration:
/usr/lib/apache2/suexec -V -D AP_DOC_ROOT="/var/www" -D AP_GID_MIN=100 -D AP_HTTPD_USER="www-data" -D AP_LOG_EXEC="/var/log/apache2/suexec.log" -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin" -D AP_UID_MIN=100 -D AP_USERDIR_SUFFIX="public_html"
包装器必须写在要访问并运行的目录树:AP_DOC_ROOT中。
有两行的www-data文件(/ etc / apache2 / suexec / www-data):
/var/www /public/cgi-bin/
你可以改变你喜欢的东西