nph 脚本在 apache2 v 2.4 浏览器中损坏

nph 脚本在 apache2 v 2.4 浏览器中损坏

我正在尝试弄清楚为什么 Perl 中的 nph- 脚本会在浏览器中损坏。这是代码:

#!/usr/bin/perl

print "Content-Type: text/plain\n\n";

print "FOO";

我给它命名nph-测试.cgi,然后从浏览器运行,我得到:

在此处输入图片描述

如果我复制相同的代码,并将其命名为测试文件,结果很好:

在此处输入图片描述

Apache 配置是:

<Directory "/home/foo/web/example.org/*">

    Options +ExecCGI +FollowSymLinks +MultiViews
    AllowOverride AuthConfig

    PerlResponseHandler ModPerl::Registry
    AddHandler perl-script .cgi .pl
    Options +ExecCGI
    PerlOptions +ParseHeaders
    AllowOverride All
    Require all granted

</Directory>

我究竟做错了什么?

版本如下:

阿帕奇2.4.18 Perl5.22.1

答案1

好吧,这不是我期待的解决方案,但已经成功了。我所有的nph-脚本位于 /cgi-bin/admin 文件夹中,因此我将其添加为 Apache 配置的一部分,以将其从 mod_perl 中删除:

<Directory "/home/user/web/example.com/public_html/cgi-bin/admin">

        Options MultiViews FollowSymLinks
        AllowOverride All
        Require all granted
        AddHandler cgi-script .cgi .pl
        Options +ExecCGI
        Options FollowSymLinks
</Directory>

看来 mod_perl 搞砸了未解析的标头,但这有点超出我的能力范围。只要这个能用,我想就没问题了 :)(只是想把它发布出来,以防其他人遇到同样的问题)

相关内容