我刚刚安装了 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的回复中描述了最正确的解决方案。