我已经把我的服务器从Debian挤到Debian喘息了。 在这个服务器上有几个apache2虚拟主机,它通过mod_fcgid运行php(我也使用mod_suexec,但这不应该是问题)。 更新后,所有我的PHP网站不工作了,如果我请求运行PHP的网站apache2提供了PHP源代码。 我所有的日志文件
没有提出任何错误,甚至没有警告。 所有neccesarry模块安装和加载。 我现在search了几个小时的解决scheme,而没有任何的努力。 这里是一个示例vhost文件(“敏感”数据被replace,用户/组和域):
<VirtualHost *:80> ServerName example.com SuexecUserGroup john-doe john-doe AddHandler fcgid-script .php DocumentRoot "/var/www/example.com/data" DirectoryIndex index.php index.html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory "/var/www/example.com/data"> Options Indexes MultiViews FollowSymLinks +ExecCGI FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php Order allow,deny allow from all AllowOverride All </Directory> ErrorLog /var/www/example.com/logs/error.log LogLevel warn CustomLog /var/www/example.com/logs/access.log combined ServerSignature Off </VirtualHost>
任何想法的人? 我也在superuser.com上问过这个问题,希望这样可以。
现在我自己偶然发现了这个解决scheme。 这个问题是由mod_fcgid的更新引起的,它更改了vhostconfiguration中使用的指令。 这些变化可以在这里看到(这是我偶然发现的)。
指令
FCGIWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php
必须改成
FcgidWrapper /var/www/example.com/php-fcgi/php-fcgi-starter .php
文件说
“所有的指令都被重命名,以便使用一个通用的前缀”Fcgid“。指令名中的下划线已经被淘汰,以支持CamelCase。旧的指令名仍然可以工作,但是不推荐使用。build立/ fixconf.sed“。
但是现在看起来旧的指令名称已经不起作用了。 这些变化已经为我做了窍门,也许这会帮助别人。