【问题标题】:CGI script not running, Internal Server Error (500) ErrorCGI 脚本未运行,内部服务器错误 (500) 错误
【发布时间】:2012-03-30 04:56:56
【问题描述】:

我正在尝试运行一个 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 模块,重新检查配置等等!!!!想不通是什么问题!!!但我可以保证脚本没有坏!

问候

【问题讨论】:

  • 这可能是错误的可执行路径。确认#!/usr/bin/perl 或第一行中的任何内容存在且可执行。
  • 我几乎可以保证您的脚本已损坏,如果不是单独损坏,则可能是由于未满足的依赖关系。除了@mcsi 所说的,寻找丢失的权限、丢失的库、错误的版本等。从命令行运行脚本可能是揭示更多信息的好方法。
  • 仅仅因为您的脚本有效,并不意味着它不会抛出 500 错误。例如,如果您的脚本没有向 apache 返回内容类型,则会抛出该错误。

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


【解决方案1】:

尝试运行:

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.

【讨论】:

    【解决方案2】:

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

    我应该写出一个 HTTP 标头

    Content Type: text/html
    [blank line]
    

    如果没有,您的脚本无法正常运行。也许另一台服务器向您传递了一个变量,您的脚本将不再创建正确的标头。

    将此代码粘贴到脚本的最末尾。如果您的脚本看起来很糟糕,但可以运行,您会发现 bug.print("Content Type: text/html\n\n");

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

    问候,

    【讨论】:

      【解决方案3】:

      其他要检查的事情是

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

      【讨论】:

        猜你喜欢
        • 2016-12-22
        • 2010-11-30
        • 2011-10-09
        • 2013-11-13
        • 2016-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多