我最近在朋友的 Web 服务器上做了一些工作,但是在执行 PHP 脚本时遇到了问题。服务器是 CentOS 5.8。尝试执行脚本(test.php,权限 0644)后,Apache 日志如下所示:
[Mon Aug 13 09:47:41 2012] [error] [client -.-.-.-] SoftException in Application.cpp:256: File "/serv/website/www/test.php" is writeable by group
[Mon Aug 13 09:47:41 2012] [error] [client -.-.-.-] Premature end of script headers: test.php
[Mon Aug 13 09:47:41 2012] [error] [client -.-.-.-] File does not exist: /serv/website/www/cp_errordocument.shtml
[Mon Aug 13 09:47:41 2012] [error] [client -.-.-.-] unable to include "cp_errordocument.shtml" in parsed file /serv/website/www/500.shtml
[Mon Aug 13 09:47:41 2012] [error] [client -.-.-.-] File does not exist: /serv/website/www/favicon.ico
[Mon Aug 13 09:47:41 2012] [error] [client -.-.-.-] File does not exist: /serv/website/www/cp_errordocument.shtml
[Mon Aug 13 09:47:41 2012] [error] [client -.-.-.-] unable to include "cp_errordocument.shtml" in parsed file /serv/website/www/404.shtml
这是我访问脚本时收到的唯一消息:[an error occurred while processing this directive]
我已经在 Google 上搜索这个问题好几个小时了,但还是找不到解决办法。任何帮助我都感激不尽!我对服务器管理不太熟悉,所以如果您需要更多信息,请告诉我。
编辑:这是我的 test.php
<?php
echo phpinfo();
?>
编辑2:当我将其添加#!/usr/bin/php
到我的 PHP 脚本的顶部时,我能够在 shell 中运行它,但是我仍然在浏览器中得到相同的结果。
答案1
如果没有更多信息,这些就是我能给你的建议。
“脚本标头过早结束”表示脚本在发送标头之前出错。因此,测试该问题的一个解决方案是关闭输出缓冲。如果这不起作用。最明显的一个是,如果脚本有非 unix 换行符,它有时会干扰执行。
最简单的方法是从命令行运行脚本,看看它会产生什么错误。您可能希望在测试时将权限更改为 0755。
尝试一下并更新我们。
编辑:
Application.cpp 中的 SoftException:256:文件“/serv/website/www/test.php”可由组写入,这意味着 apache 权限配置错误。检查路径 /serv/website/www 的权限,确保它们不是 777。尝试将目录设置为 755。
//出于什么原因反对oO?
答案2
错误消息表明该权限test.php
为组可写。请尝试g:w
从文件中删除权限
chmod g-w test.php