繁体   English   中英

PHP 未被 apache2 解释(在 Debian 上)

[英]PHP not being interpreted by apache2(on 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

从wheezy升级到jessie之后,我遇到了完全相同的问题。 除了它们从Apache 2.2迁移到2.4的事实之外,这导致我遇到了许多不兼容性和错误,php也不再得到解释。

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

我正在用短脚本验证php的可用性

<?
 phpinfo();
?>

在几个小时的脑细胞损伤并变老之后,我用以下方法代替了它:

<?php
 phpinfo();
?>

一切都像魅力一样。

因此,这是一个PHP问题,而不是APACHE。 这是因为short标记显然在jessie中默认为禁用。 在您的php.ini(/etc/php5/apache2/php.ini)中查找“ short_open_tag ”参数,并将其设置为On,最终或在脚本中使用完整标签( <?php )。 我知道这是一个仅用于向后兼容的参数,但是仍然很难找到它。

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

干杯,

通过将apache2.conf中的LogLevel warn更改为LogLevel debug ,使错误日志更加冗长。

希望您的错误日志会更有用。

安装 libapache2-mod-php package

sudo apt-get update
sudo apt-get install libapache2-mod-php

启用Apache中的php模块

sudo a2enmod phpx.y  (eg: php7.4)

重启apache服务

 sudo systemctl restart apache2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM