Saída de texto simples do script perl do Apache

1

Alguém pode sugerir por que meu script perl está sendo renderizado como texto simples:

#!/usr/bin/perl
use FindBin;
BEGIN {
  lib->import($FindBin::Bin) unless $ENV{mod_perl}
}
require 'lsmb-request.pl';

As diretivas do Meu Diretório são as seguintes:

Alias /ledgersmb /opt/ledgersmb/
<Directory /opt/ledgersmb>
  RewriteRule ^/ledgersmb/?$ /ledgersmb/login.pl [R]
  RewriteRule rest/(.*) /ledgersmb/rest-handler.pl/$1

  Options +ExecCGI +FollowSymLinks
  AllowOverride All
  AddHandler cgi-script .pl
  Require all granted
</Directory>

Versão do Apache:

[dave@Threepwood opt]# sudo apachectl -v
Server version: Apache/2.4.23 (Unix)
Server built:   Jul  5 2016 07:34:37

Permissões:

[dave@Threepwood ~]$ ls -l /opt/ledgersmb/setup.pl 
-rwxr-xr-x 1 http dave 119 Aug 20 14:53 /opt/ledgersmb/setup.pl
[dave@Threepwood ~]$ ls -l /opt/ledgersmb/login.pl 
-rwxr-xr-x 1 http dave 119 Aug 20 14:53 /opt/ledgersmb/login.pl

Obrigado!

    
por Dave Coventry 03.09.2016 / 23:02

2 respostas

2

Quando o conteúdo de um script é processado como texto simples, em vez de o script ser executado, o que pode ser observado, por exemplo, quando o module for CGI não foi carregado com, por exemplo, LoadModule cgi_module modules/mod_cgi.so .

Se a saída do script for processada como texto simples, isso é uma falha do autor do script. Um dos primeiros requisitos ao escrever um script CGI:

all output from your CGI program must be preceded by a MIME-type header. This is HTTP header that tells the client what sort of content it is receiving.

Sem um cabeçalho (correto) do tipo MIME, o navegador terá que adivinhar qual é o conteúdo. O navegador pode usar como padrão para tentar exibir sua saída como texto simples.

    
por 04.09.2016 / 15:16
-1

Verifique se o script é executável:

chmod +x path-to-script.pl
    
por 04.09.2016 / 04:09