По какой-то причине я не могу запустить 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
Другие запущенные скрипты используют точно такие же разрешения и настройки. Однако скрипты просто выдают сообщение об ошибке 500, если я не изменю верхнюю строку с #!/usr/bin/perl
к #!/usr/bin/perl -w
(с предупреждениями). Журнал ошибок выводит следующую ошибку, когда я запускаю его без -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
делает, как объяснено выше.
Кто-нибудь знает, с чего я могу начать или тут сразу что-то не так вижу?