由于某种原因,我无法让 perl 脚本在 cgi-bin 文件夹中运行。我没有制作这些文件,我们已将它们上传到另一台服务器,它们运行良好。
但是我使用了以下 test.pl 文件,它可以通过 bash(以 root 身份)和浏览器正常运行。
#!/usr/bin/perl
use strict;
use warnings;
#Useful for testing: Perl error messages, plus your die statements, will get
#sent to the browser. Otherwise you will just see "Internal Server Error".
use CGI::Carp qw/fatalsToBrowser/;
#Always use the CGI module for your scripts.
use CGI;
#Create simple HTML output (taken directly from CGI documentation).
my $q = CGI->new; # create new CGI object
print $q->header, # create the HTTP header
$q->start_html('hello world'), # start the HTML
$q->h1('hello world'), # level 1 header
$q->end_html; # end the HTML
正在运行的其他脚本使用完全相同的权限和设置。但是,除非我将顶行从 更改为#!/usr/bin/perl
(#!/usr/bin/perl -w
带有警告),否则脚本只会显示 500 错误消息。当我不使用 运行它时,错误日志会输出以下错误-w
。
错误日志:
[Fri Sep 26 12:06:03 2014] [error] [client xxx.xxx.xx.xxx] (2)No such file or directory: exec of '/var/www/html/foldername/cgi-bin/ss000001.pl' failed
[Fri Sep 26 12:06:03 2014] [error] [client xxx.xxx.xx.xxx] Premature end of script headers: ss000001.pl
我应该注意,我可以nano /var/www/html/foldername/cgi-bin/ss000001.pl
打开文件并将 perl 更改为-w
如上所述的操作。
有人知道我可以从哪里开始或者在这里立即发现任何错误吗?