Perl não funciona sem avisos no CGI

2

Por algum motivo, não consigo executar um script perl na pasta cgi-bin. Eu não fiz esses arquivos e nós os enviamos para outro servidor e eles funcionam bem.

No entanto eu usei o seguinte arquivo test.pl que funciona bem através do bash (como root) e através do navegador.

#!/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

Os outros scripts em execução usam exatamente as mesmas permissões e configurações. No entanto, os scripts apenas exibem uma mensagem de erro 500, a menos que eu altere a linha superior de #!/usr/bin/perl para #!/usr/bin/perl -w (com avisos). O log de erros produz o seguinte erro quando eu o executo sem o -w .

Registro de erros:

[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

Devo observar que posso fazer nano /var/www/html/foldername/cgi-bin/ss000001.pl , que abre o arquivo e alterar perl para -w , conforme explicado acima.

Alguém sabe onde posso começar ou ver algo imediatamente errado aqui?

    
por Liam Sorsby 26.09.2014 / 12:18

0 respostas

Tags