Linux下PHP脚本执行结果不显示问题
时间:2006-05-21 来源:vic2005
今天用一个PHP的小例子测试配置的Linux+Apache+Mysql+PHP
(LAMP)。没想到拔出萝卜带出一堆泥。多亏同学龚的帮忙,解决了问题,虽然问题的详细原因还不明,但这种方法的确解决了问题,也希望清楚这个问题根源
的朋友,麻烦告诉我。现将问题和解决方法记录下来.
1、问题:
文件index.php
Web Database Sample Index
";
echo " User Name Domain Name Request Date ";
while ($r = mysql_fetch_array($result)) {
$idx = $r["idx"];
$user = $r["UserName"];
$text = $r["Text"];
echo " $idx $user $text ";
echo "vic test here";
}
echo "";
} else {
echo "No data.";
}
mysql_free_result($result);
?>
问题是:echo "vic aft";这句执行结果显示不出。
2.我测试的方法:
1.解释器测试
php -f index.php |elinks --force-html
#将index.php用php解释器执行,并将生成结果重定向到命令行的web浏览器elinks. 测试执行结果正确.
2.浏览器测试
elinks http://127.0.0.1/~web/index.php
#用浏览器elinks直接查看index.php在apache上的执行结果
测试结果不正确
这两种测试方法是有区别的,这也恰恰是我刚开始对于两种测试方法结果不同迷惑的原因所在. 方法一只通过PHP的解释器,测试重点在php脚本文件,语法是否正确,运行结果是否正确. 而方法二除了方法一的测试目的外,还有对apache是否可以正确处理此脚本的测试,可以看作是客户端的最终测试,或者UAT(User assistant testing)测试.
两者结果的不同,恰好说明apache的处理有问题.
3.解决方法:
龚将/etc/php.ini文件做了修改,其修改前后的比较如下:
[root@localhost etc]# diff php.ini php.ini~
388c388
;html_errors = Off
在php.ini文件里对这个设置项的解释是:
Disable the inclusion of HTML tags in error messages.
但在index.php脚本里,我输出的是正常信息,而非错误信息.
为什么enable这个项就可以解决问题,还不清楚.希望大家能给出意见.
相关阅读 更多 +