无法在 CentOS 5.8/Apache 2 上执行 PHP 脚本

无法在 CentOS 5.8/Apache 2 上执行 PHP 脚本

我最近在朋友的 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

相关内容