脚本过早结束和执行格式错误

脚本过早结束和执行格式错误
[Fri Jan 29 20:23:28 2010] [error] [client 23.23.23.23] Premature end of script headers: header.php
[Sat Jan 30 10:22:42 2010] [error] [client 23.23.23.23] (8)Exec format error: exec of '/var/www/cgi-bin/header.php' failed

如何修复?基本上,.cgi 脚本会加载包含 javascript 和一些 php 内容的 header.php.....

我注意到 .cgi 脚本运行良好,但是 javascript 和 php 都无法运行。

答案1

由于您几乎没有提供更多信息,因此任何人在没有更多信息的情况下所能做的最好的事情就是猜测。这是我的猜测:

您可能在某处缺少分号、括号或花括号(或其他分隔符或方括号字符),或者在应为 Unix 行尾(\n)的地方出现了 DOS 行尾(\r\n)。

答案2

可能性不大,但可以尝试添加

AddHandler application/x-httpd-php .php

到你的 apache 配置文件。

答案3

尝试查看你的 Web 服务器是否有类似这样的内容,即在 Apache 中:

ScriptAlias /cgi-bin/
<Directory /cgi-bin/>
   Options ExecCGI ...
</Directory>

强制整个目录可执行(就像您尝试运行 python/perl 脚本一样)

如果有的话 - 请确保您的文件是可执行的( chmod +x ... )

并在 CGI 脚本的第一行检查 php 解释器(可能),例如:

#!/usr/bin/php

答案4

我有两个想法:

  • 也许您的 php 文件存在权限问题。请确保它具有所有者和组的正确权限。
  • 也许您混合了 html 标题和正文元素。请确保您在正确的位置包含了 php 文件。

相关内容