Apache2 无法正确提供 PHP 脚本

Apache2 无法正确提供 PHP 脚本

我在 Debian Squeeze 上运行的 Apache 2.2.16 配置遇到了问题。问题是它完全停止提供 PHP5 脚本。当我尝试使用 Google Chrome 访问网站时,它会下载一个名为“download”的文件,其中包含脚本的内容。这当然不是一件好事。它确实可以完美地提供常见的 html 文件...

我已经研究这个问题有一段时间了,在谷歌搜索和故障排除之后,我觉得是时候向你们请教了。以下是我得到的信息:

  1. php5 和 libapache2-mod-php5 包已安装
  2. /etc/apache2/mods-available 包含 php5.load 和 php5.conf,它们是从 mods-enabled 目录符号链接的
  3. /etc/php5/ 目录自安装以来一直未发生改变。

以下是 /etc/apache2/mods-available/php.load 的内容:

LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

和 /etc/apache2/mods-available/php.conf:

<IfModule mod_php5.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-php
    </FilesMatch>
    <FilesMatch "\.phps$">
        SetHandler application/x-httpd-php-source
    </FilesMatch>
    <IfModule mod_userdir.c>
        <Directory /home/*/public_html>
            php_admin_value engine Off
        </Directory>
    </IfModule>
</IfModule>

我遗漏了什么?这是一台修改了虚拟主机等的服务器,所以我可能更改了一些导致此问题的设置,但到目前为止,简单的清除和重新安装不是一个选择,因为配置相当广泛。任何帮助都很好。谢谢。

编辑:我正在尝试访问 /var/www/ 下的虚拟 apache 主机中运行的脚本。这些脚本的配置如下:

<VirtualHost 1.2.3.4:80>
        ServerAdmin [email protected]
        ServerName domain.com
        ServerAlias www.domain.com
        DocumentRoot /var/www/domain.com/public_html/
        ErrorLog /var/www/domain.com/logs/error.log
        CustomLog /var/www/domain.com/logs/access.log combined
        Options -indexes
</VirtualHost>

答案1

您可以尝试删除整个php_admin_value engine Off设置,也许您意外地匹配了脚本。是否FilesMatch进行不区分大小写的匹配?也许检查正则表达式的语法?

正在如何php.conf加载?请仔细检查是否正在正确加载。

答案2

您想从哪里访问 php 脚本?我猜是在 /home/*/public_html 的某个地方?

我相信 php_admin_value engine Off 将关闭 php.ini 中的引擎值。并且根据 php.ini 注释,它应该打开:

; Enable the PHP scripting language engine under Apache.
engine = On

如果将 php_admin_value engine Off 更改为 php_admin_value engine On,会发生什么情况

相关内容