Linux perl cgi“;标题前的脚本输出结束“;

Linux perl cgi“;标题前的脚本输出结束“;,linux,apache,perl,fedora,Linux,Apache,Perl,Fedora,有人能帮我吗?这件事让我烦了好几天 环境: 在fedora 21上运行简单的perl cgi脚本, 服务器版本:Apache/2.4.10(Fedora), 这是为x86_64-linux-thread-multi构建的perl 5,版本18,subversion 4(v5.18.4) getenforce:允许的 cgi脚本: #!/usr/bin/perl print "Content-type: text/html\n\n"; use strict; use warnings; pri

有人能帮我吗?这件事让我烦了好几天

环境:
在fedora 21上运行简单的perl cgi脚本,
服务器版本:Apache/2.4.10(Fedora),
这是为x86_64-linux-thread-multi构建的perl 5,版本18,subversion 4(v5.18.4)
getenforce:允许的

cgi脚本:

#!/usr/bin/perl
print "Content-type: text/html\n\n";

use strict;
use warnings;
print "Hello, world!<br />\n";

foreach my $key (keys %ENV) {
    print "$key --> $ENV{$key}<br />";
}
#/usr/bin/perl
打印“内容类型:text/html\n\n”;
严格使用;
使用警告;
打印“你好,世界!
\n”; foreach my$密钥(密钥%ENV){ 打印“$key-->$ENV{$key}
”; }

问题:
该脚本将不会在127.0.0.1/~username/子文件夹/
中运行 我应该知道如何设置perl cgi环境,同样的代码适用于127.0.0.1/cgi-bin、127.0.0.1/cgi-bin/subfolder/、127.0.0.1/~username/

当在用户的子文件夹下执行脚本时,我总是得到“在头之前输出脚本结束”

有人能帮忙吗?谢谢

如果没有进一步的详细信息,我们无法诊断您的问题,因为该错误意味着apache在运行您的脚本时没有走那么远

现在,由于这是脚本的第一行,这可能意味着apache根本无法运行它

通常的罪魁祸首是:

  • 脚本不可执行
  • 否则代码会被破坏,因此不能使用
    perl-c
    进行编译

解决方案是检查apache日志,这些日志将在发生这种情况时捕获
STDERR
,这将帮助您进行诊断

建议您查看apache配置文件。查找将cgi bin定义为可从中运行脚本的有效文件夹的部分,并添加所需的其他文件夹。此外,您的脚本和文件夹需要执行权限,例如chmod文件到755。请查看您的Apache日志文件,其中经常出现“脚本结束…”错误的原因。