我使用的是 perl 5.10.1,perl 的路径是 /usr/bin/perl
我已将文件更改为 755,但收到内部服务器错误:
#!/usr/bin/perl
use strict;
print "Content-type: text/plain\n\n";
print "huh";
代码很简单,我不知道是什么原因造成的。我还运行一个用 Perl 编码的论坛软件,它工作正常并且使用相同的路径。
编辑:感谢大家的帮助,我创建了另一个文件夹并在其中添加了一个 cgi-bin 并尝试了该脚本,它有效。我仍然不知道为什么它在第一个文件夹中不起作用,一个 friend 在第一个文件夹中编辑了我的 .htaccess 文件,这可能是问题所在。
最佳答案
请注意,正确的拼写是 Content-Type .
缓冲可能有问题(输出量很小,末尾没有换行符等......)这让我很怀疑。这是我会尝试的最小脚本:
#!/usr/bin/perl
use strict;
use CGI qw(:standard);
local $| = 1;
print header('text/plain'), "huh\n";
您是否将文件从 Windows PC FTP 到 Unix 系统?如果您以二进制模式传输文件,shebang 行将不正确。
例如:
$ unix2dos t.pl unix2dos: converting file t.pl to DOS format ... $ xxd t.pl 0000000: 2321 2f75 7372 2f62 696e 2f70 6572 6c0d #!/usr/bin/perl. 0000010: 0a0d 0a70 7269 6e74 2022 4041 5247 565c ...print "@ARGV\ 0000020: 6e22 3b0d 0a n";.. $ ./t.pl hello world zsh: ./t.pl: bad interpreter: /usr/bin/perl^M: no such file or directory
关于perl - 为什么我的 Perl CGI 脚本会出现 500 内部服务器错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22700653/