我刚刚使用 ppa 将 Ubuntu Server 12.04 上的 php 从 5.3 升级到 5.4,ppa:ondrej/php5-oldstable
但现在我的基于 php 的网站无法加载(我只能获得一个下载的文件)。我已重新启动apache2
,我的/etc/apache2/mods-available/php5.conf
文件如下所示:
<IfModule mod_php5.c>
AddType application/x-httpd-php .php
# AddType application/x-httpd-php-source .phps
<FilesMatch "\.ph(p3?|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
# SetHandler application/x-httpd-php-source
</FilesMatch>
# To re-enable php in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
# php_admin_value engine Off
</Directory>
</IfModule>
apache 的 error.log 中没有任何内容:
[Tue Feb 10 15:55:13 2015] [notice] caught SIGTERM, shutting down
[Tue Feb 10 15:55:14 2015] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec)
[Tue Feb 10 15:55:14 2015] [notice] Digest: generating secret for digest authentication ...
[Tue Feb 10 15:55:14 2015] [notice] Digest: done
[Tue Feb 10 15:55:14 2015] [notice] Apache/2.2.22 (Ubuntu) DAV/2 SVN/1.6.17 mod_fcgid/2.3.6 PHP/5.4.37-1+deb.sury.org~precise+1 mod_ruby/1.2.6 Ruby/1.8.7(2011-06-30) mod_ssl/2.2.22 OpenSSL/1.0.1 configured -- resuming normal operations
apache2ctl configtest
给出以下输出:
[Tue Feb 10 16:23:42 2015] [warn] The Alias directive in /etc/apache2/conf.d/owncloud.conf.old at line 1 will probably never match because it overlaps an earlier Alias.
[Tue Feb 10 16:23:42 2015] [warn] NameVirtualHost 2001:41D0:2:6D94::1:443 has no VirtualHosts
[Tue Feb 10 16:23:42 2015] [warn] NameVirtualHost 94.23.234.148:443 has no VirtualHosts
我还确保已启用 php5 mod a2endmod php
(它说已启用)。显然,5.3 和 5.4 之间有某种配置更改,但我无法使用 Google-fu 找到它是什么。
奇怪的是,OwnCloud 可以运行,这就是我首先升级到 5.4 的原因(v8 需要它)。它用 PHP 构建,运行良好!
如果我放入一个 php 文件,/var/www
它就可以工作,所以问题显然出在我的虚拟主机上。
任何帮助都非常感谢!
劳伦斯
答案1
我通过禁用php5_cgi
Apache 模块解决了这个问题,如 Virtualmin 论坛上的这个帖子所述:https://www.virtualmin.com/node/25521