我们今天早上把我们的Debiannetworking服务器升级到了Wheezy,在其他一切都好起来之后,Apache似乎已经失去了执行PHP脚本的能力,而在升级之前却能够执行。 现在我们只能看到PHP代码,就好像PHP模块没有启用。
我已经检查了所有常见的嫌疑人,确保PHP模块被加载和安装,并确保/etc/apache2/mods-enabled/php5.conf具有“SetHandler application / x-httpd-php”选项。 我也跟着最新的文档在Apache上安装PHP5,一切似乎检查出来。 Apache错误日志中没有任何错误可能表明存在问题。
有什么我错过了吗?
'apachectl -t -D DUMP_MODULES | grep php'的输出:
Syntax OK php5_module (shared)
'www3:/ etc / apache2#apache2 -v'的输出:
Server version: Apache/2.2.22 (Debian) Server built: Jan 31 2014 18:55:37
/etc/apache2/mods-enabled/php5.conf的内容:
<IfModule libphp5.so> # <FilesMatch "\.ph(p3?|tml)$"> # </FilesMatch> <FilesMatch "\.php$"> SetHandler application/x-httpd-php </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> </IfModule>
最近一次重启的apache错误日志:
[Thu Apr 10 15:35:44 2014] [notice] caught SIGTERM, shutting down [Thu Apr 10 15:35:45 2014] [warn] No JkLogFile defined in httpd.conf. Using default /var/log/apache2/mod_jk.log [Thu Apr 10 15:35:45 2014] [warn] No JkShmFile defined in httpd.conf. Using default /var/log/apache2/jk-runtime-status [Thu Apr 10 15:35:45 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366) [Thu Apr 10 15:35:45 2014] [notice] suEXEC mechanism enabled (wrapper: /usr/lib/apache2/suexec) [Thu Apr 10 15:35:45 2014] [notice] Digest: generating secret for digest authentication ... [Thu Apr 10 15:35:45 2014] [notice] Digest: done [Thu Apr 10 15:35:45 2014] [warn] No JkLogFile defined in httpd.conf. Using default /var/log/apache2/mod_jk.log [Thu Apr 10 15:35:45 2014] [warn] No JkShmFile defined in httpd.conf. Using default /var/log/apache2/jk-runtime-status [Thu Apr 10 15:35:45 2014] [warn] Init: Name-based SSL virtual hosts only work for clients with TLS server name indication support (RFC 4366) [Thu Apr 10 15:35:45 2014] [notice] Apache/2.2.22 (Debian) DAV/2 SVN/1.6.17 mod_fcgid/2.3.6 mod_jk/1.2.37 PHP/5.4.4-14+deb7u8 mod_ssl/2.2.22 OpenSSL/1.0.1e mod_perl/2.0.7 Perl/v5.14.2 configured -- resuming normal operations
事实certificate,这是一个Apache模块的问题。 禁用他们中的大多数解决了这个问题,然后我们开始添加他们,直到其他一切工作。
尝试运行以下命令:
sudo apt-get purge libapache2-mod-php5 sudo apt-get install libapache2-mod-php5 sudo a2enmod php5 sudo service apache2 restart
这将重新安装所有必要的软件包以使Apache能够运行mod_php。
您也可以确保文件php5.conf位于/ etc / apache2 / mods-enabled目录中。 如果是,你应该看到像这样的东西:
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
php5-suhosin不再可用,但除非你清除这个软件包,它的.ini文件仍然在/etc/php5/conf.d/ ,这将阻止PHP运行。
请参阅: https : //www.debian.org/releases/stable/i386/release-notes/ch-upgrading.html#idp836640