在 Red Hat(内核 2.6)上通过 Apache 2.2.15 运行 PHP 5.3.3
我在根目录中有一个名为 test.php 的测试文件:
<?
phpinfo();
?>
当我用浏览器访问此文件时,它会将未解释的源代码发送给我。
日志中没有显示任何错误,并且访问日志有一个标准条目:
xx.xx.xx.xx - - [29/Nov/2012:10:26:56 -0500] "GET /test.php HTTP/1.1" 200 17 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.91 Safari/537.11"
我的配置文件有以下几行:
/etc/httpd/conf/httpd.conf
...
Include conf.d/*.conf
...
/etc/httpd/conf.d/php.conf
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
LoadModule php5_module modules/libphp5-zts.so
</IfModule>
#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
启动时没有记录任何错误,这表明模块确实被正确加载。
这些都是开箱即用的配置,所以我真的很惊讶它居然不起作用。有什么想法吗?
答案1
叹为什么搜索了几个小时却一无所获。但在 SO 上发帖 2 分钟后就得到了答案?
因此,无论我从哪个网站复制该测试文件,都没有考虑到默认情况下短标签是关闭的。将测试文件更改为
<?php
phpinfo();
?>
修复了所有问题。