PHP没有被apache2解释(在Debian上)

时间:2014-07-20 15:29:28

标签: php apache apache2 debian

我目前正在使用我的apache服务器出现问题。 在用

升级系统后,它不会解释php
    apt-get update
    apt-get upgrade
    apt-get dist-upgrade

顺便说一句,我使用的是Debian(Linux版本2.6.32-042stab090.3)。

无论如何,我一直在寻找各种网站来寻找解决方案。 他们大多说在我的http.conf / apache2.conf中缺少包含由php5解释器解释的php文件。他们建议我添加

    <FilesMatch "\.php$">
        SetHandler application/x-httpd-php
    </FilesMatch>

到我的配置文件和其他变体,但没有一个工作。是的,我在编辑配置文件后重新启动了apache2服务器。 他们还说php5.conf的正则表达式可能是错误的,并导致一个解释器,它不关心真正的php文件或其他什么。 还有一些人建议我应该运行

    sudo apt-get purge libapache2-mod-php5
    sudo apt-get remove libapache2-mod-php5

这样php的配置文件正确重建,但因为我运气不好也显示错误:

    Err http://ftp.us.debian.org/debian/ testing/main libapache2-mod-php5filter amd64 5.6.0~rc2+dfsg-1
      404  Not Found [IP: 128.61.240.89 80]
    Unable to correct missing packages.
    E: Failed to fetch http://ftp.us.debian.org/debian/pool/main/p/php5/libapache2-mod-php5filter_5.6.0~rc2+dfsg-1_amd64.deb  404  Not Found [IP: 128.61.240.89 80]

那么还有另一个建议说我应该检查apache2的 error.log ,但它只显示给我的非帮助消息。

    [Sun Jul 20 01:19:27.468164 2014] [mpm_prefork:notice] [pid 31052] AH00163: Apache/2.4.9 (Debian) PHP/5.6.0RC2 configured -- resuming normal operations
    [Sun Jul 20 01:19:27.468204 2014] [core:notice] [pid 31052] AH00094: Command line: '/usr/sbin/apache2'
    [Sun Jul 20 16:22:25.052630 2014] [mpm_prefork:notice] [pid 31052] AH00169: caught SIGTERM, shutting down

我很抱歉这个问题很长,但我不想得到不必要的答案,所以我决定尽可能详细地提出这个问题。如果有语法错误,我很抱歉。 如果你能帮助我或至少提出任何听起来有用的建议,我会非常高兴。

感谢阅读。

您诚挚的 Japu_D_Cret

3 个答案:

答案 0 :(得分:4)

从wheezy升级到jessie之后我遇到了完全相同的问题。 除了他们从apache 2.2迁移到2.4,这导致我出现了一堆不兼容和错误之外,php也不再被解释了。

但是正如他们所说的那样,最明显的秘密就在眼前,这就是我如何解决的问题(孩子们很容易!)。

我用简短的脚本验证了php的可用性

<?
 phpinfo();
?>

经过几个小时的脑细胞损伤和老化后,我将其替换为:

<?php
 phpinfo();
?>

一切都像魅力一样。

所以这是一个PHP问题,而不是APACHE。这是因为jessie默认禁用了短标签。查看你的php.ini(/etc/php5/apache2/php.ini)中的&#39; short_open_tag &#39;参数,并将其设置为On,最终或使用脚本中的完整标记( <?php )。我知道它只是为了向后兼容而保留的参数,但仍然有一段艰难的时间寻找它。

答案 1 :(得分:1)

您应该编辑php.ini文件并搜索short_open_tag = Off(将Off更改为On),然后重新启动apache2服务。如果该标签已关闭,则必须使用

干杯,

答案 2 :(得分:0)

通过在apache2.conf中将 LogLevel警告更改为 LogLevel debug ,使您的错误日志更加详细。

我希望您的错误日志会更有帮助。