脚本过早结束和exec格式错误

[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脚本加载header.php其中包含JavaScript和一些PHP的东西…..

我注意到。CGI脚本运行良好,但没有任何的JavaScript和PHP的东西的工作。

没有更多的信息,任何人都可以做到最好,因为你几乎没有提供任何信息。 这是我的:

你有一个缺less的分号或圆括号,或者在某个地方(或者其他一些分隔符或者包围字符)的大括号,或者是DOS行结尾(\ r \ n),那里应该是Unix的(\ n)。

远射,但尝试添加

 AddHandler application/x-httpd-php .php 

到你的apacheconfiguration文件。

尝试看看你的web服务器是否有这样的东西,即在Apache中:

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

强制整个目录是可执行的(就像你试图运行一个python / perl脚本)

如果你有 – 确保你的文件是可执行的(chmod + x …)

在CGI脚本的第一行检查php interperter(也许),如:

 #!/usr/bin/php 

我有两个想法:

  • 也许你有你的PHP文件的权限问题。 确保它拥有所有者和组的正确权限。
  • 也许你正在混合html标题和body元素。 确保你包括在正确的位置的PHP文件。

如果您正在运行CGI,您将无法将其分配到您的应用程序的主文件夹,因为像CSS或JS这样的文件将被Apache试图执行,导致AH01215: (8)Exec format error: exec of在/var/log/apache2/error.log里面AH01215: (8)Exec format error: exec of ERROR的AH01215: (8)Exec format error: exec of

只为可执行文件创build单独的文件夹,并添加这样的东西到你的/etc/apache2/sites-enabled/sub.domaian.com.conf

 <VirtualHost *:80> DocumentRoot "/var/www/html/yoursite" ServerName sub.domain.com <Directory "/var/www/html/yoursite"> allow from all Require all granted </Directory> <Directory "/var/www/html/yoursite/CGI"> Options ExecCGI SetHandler cgi-script </Directory> AddHandler cgi-script .py </VirtualHost> 

有趣的是:我有SetHandler cgi脚本分配到主文件夹,并在我的情况下,我可以打开页面没有问题,当我通过局域网访问页面,而不是从广域网。

另一个可能性(所有以前的答案可能也是有效的原因):

/etc/apache2/php/php.ini更改这个指令:

 ScriptAlias "/phptest/" "/var/www/phptest/" 

 Alias "/phptest/" "/var/www/phptest/" 

(所有path由我组成 – 更改为适用于您的服务器设置的值)