Apache22 显示 PHP 源代码

Apache22 显示 PHP 源代码

我刚刚安装了 Apache22、带有 Apache 模块的 PHP 5 和 MySQL。Apache conf 文件包含 PHP LoadModule 行,但它仍然显示 PHP 源代码。还有其他原因导致这种情况吗?

答案1

一个常见的原因是你使用了 PHP 短打开标签<?,但是 PHP 有short_open_tag已禁用。

答案2

我认为您可能需要设置一种应用程序类型,这样它就知道根据文件扩展名或其他内容使用 php 模块。

我不使用 FreeBSD,所以我不知道安装过程。在 Windows 和 Ubuntu/Linux Mint 上,这是自动完成的。

这就是我在名为 php5.conf 的文件中的内容(这只是它在 Ubuntu 中的组织方式),但它可以放在 http.conf 中的加载模块行之后的任何位置。

<IfModule mod_php5.c>
    <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>
</IfModule>

答案3

最简单的解决办法是添加一行:

AddType application/x-httpd-php .php

在httpd.conf中。Gohn67的回复中描述了最正确的解决方案。

相关内容