【问题标题】:CGI script: No REQUEST_METHOD in environmentCGI 脚本:环境中没有 REQUEST_METHOD
【发布时间】:2015-01-29 05:52:25
【问题描述】:

我有一个基本的 Ubuntu 服务器设置,我正在尝试在其上运行 CGI 脚本,但每当我尝试通过命令行运行脚本时都会收到以下错误:

CGI 将在下一个主要版本中从 Perl 核心发行版中删除。请安装单独的 libcgi-pm-perl 软件包。它在 /etc/perl/RABX.pm 第 583 行使用。

CGI::Util 将在下一个主要版本中从 Perl 核心发行版中删除。请安装单独的 libcgi-pm-perl 软件包。它在 /usr/share/perl/5.20/CGI.pm 第 29 行使用。

状态:400 错误请求
内容类型:应用程序/八位字节流
内容长度:98

E1:0,3:513,82:环境中没有 REQUEST_METHOD;此脚本必须在 CGI/FastCGI 上下文中运行,N

如果我尝试在浏览器中运行脚本,我只会收到 500 内部服务器错误。

我对安装 libcgi-pm-perl 包持谨慎态度,因为 CGI 脚本是一个更大的遗留应用程序的一部分,我担心它会与较新的包不兼容。我不知道这是一个真正的错误还是更多的警告。

真正让我困惑的是最后一行。任何建议将不胜感激!

完整的脚本可以在这里看到:https://github.com/mysociety/writetothem/blob/master/web/services/queue.cgi

另外,如果这个问题更适合 ServerFault,我深表歉意 - 我不确定哪里更合适。

【问题讨论】:

    标签: apache perl cgi fastcgi


    【解决方案1】:

    每当我尝试通过命令行运行脚本时 ... 此脚本必须在 CGI/FastCGI 上下文中运行

    您收到错误“环境中没有 REQUEST_METHOD”,因为您不是在 CGI 上下文中运行,而是在命令行中运行。

    请安装单独的 libcgi-pm-perl 包

    我对安装 libcgi-pm-perl 包持谨慎态度,因为 CGI 脚本是一个更大的遗留应用程序的一部分,我担心它会与较新的包不兼容。我不知道这是一个真正的错误还是更多的警告。

    这是一个警告,你最好安装 libcgi-pm-perl,因为 CGI.pm 将来不会包含在核心 perl 中。此包中的 CGI.pm 与核心 perl 中的相同,因此您无需担心有不同的模块。当然,它可能比您以前使用的版本更新。但是在过去使用新的 perl 版本时也是如此。

    【讨论】:

    • 感谢您解决在命令行中运行的问题。从现在开始,我将坚持使用 apache 错误日志进行调试。
    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 2016-06-07
    • 1970-01-01
    • 2010-10-05
    • 1970-01-01
    • 2015-06-23
    • 2013-01-01
    • 1970-01-01
    相关资源
    最近更新 更多