CGI脚本未运行,内部服务器错误(500)错误

时间:2012-03-30 04:56:56

标签: perl apache cgi centos internal-server-error

我正在尝试运行一个cgi脚本,它是一个很长的脚本所以我不会粘贴在这里,但它可以在我的其他服务器上工作,但出于某种原因,当我尝试在我的新服务器上运行它我得到内部服务器错误(500) ,当我检查apache日志时,我得到的是:

[Fri Mar 30 08:38:29 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
[Fri Mar 30 08:38:29 2012] [error] [client 199.212.76.124] Premature end of script headers: test.cgi
[Fri Mar 30 08:38:29 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:11 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
[Fri Mar 30 08:41:11 2012] [error] [client 199.212.76.124] Premature end of script headers: test.cgi
[Fri Mar 30 08:41:11 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:12 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
[Fri Mar 30 08:41:12 2012] [error] [client 199.212.76.124] Premature end of script headers: test.cgi
[Fri Mar 30 08:41:12 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:15 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/test.cgi' failed
[Fri Mar 30 08:41:15 2012] [error] [client 199.212.76.124] Premature end of script headers: test.cgi
[Fri Mar 30 08:41:15 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:20 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/upload.cgi' failed
[Fri Mar 30 08:41:20 2012] [error] [client 199.212.76.124] Premature end of script headers: upload.cgi
[Fri Mar 30 08:41:20 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:21 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/upload.cgi' failed
[Fri Mar 30 08:41:21 2012] [error] [client 199.212.76.124] Premature end of script headers: upload.cgi
[Fri Mar 30 08:41:21 2012] [error] [client 199.212.76.124] File does not exist: /var/www/htdocs/favicon.ico
[Fri Mar 30 08:41:29 2012] [error] [client 199.212.76.124] (2)No such file or directory: exec of '/var/www/cgi-bin/upload.cgi' failed, referer: http://bla.com
[Fri Mar 30 08:41:29 2012] [error] [client 199.212.76.124] Premature end of script headers: upload.cgi, referer: http://bla.com

我已经尝试了一切,chmod文件,重新安装perl模块,重新检查配置等等!想不通有什么问题!!!但我可以保证脚本没有坏掉!

问候

3 个答案:

答案 0 :(得分:2)

尝试跑步:

perl -c /var/www/cgi-bin/upload.cgi

引自perldoc perlrun:

   -c   causes Perl to check the syntax of the program and then exit
        without executing it.  Actually, it will execute "BEGIN",
        "UNITCHECK", "CHECK", and "use" blocks, because these are
        considered as occurring outside the execution of your program.
        "INIT" and "END" blocks, however, will be skipped.

答案 1 :(得分:2)

使用perl -w /var/www/cgi-bin/upload.cgi运行脚本。

我应该写出一个HTTP标头

Content Type: text/html
[blank line]

如果没有,您的脚本运行不正常。也许其他服务器会向您传递一个变量,而您的脚本将不再创建正确的标头。

将此代码粘贴到脚本中。如果你的脚本看起来很糟糕但是工作正常,你会发现bug.print(“内容类型:text / html \ n \ n”);

print("Content Type: text/html\n\n");

的问候,

答案 2 :(得分:1)

要检查的其他事项是

  • 第一个中的perl的位置(#!/ usr /..)
  • dos2unix文件,没有asci字符
  • 不同位置的其他cgi脚本以消除cgi设置
  • 目录烫发?不确定是否会影响它