Por que meu script CGI Perl gera um erro interno do servidor no Apache?

1

Instalei o apache2 no Ubuntu 11.04 e o localhost está funcionando. Eu criei um simples script printenv.pl e coloquei no seguinte diretório

$ mv printenv.pl /usr/lib/cgi-bin/
$ chmod +rx /usr/lib/cgi-bin/printenv.pl

No entanto, quando eu vou para o link , recebo um 500 Internal Server Error

Eu verifiquei o log de erros em /var/log/apache2 , e é isso que diz:

[Mon Oct 24 11:04:25 2011] [error] (13)Permission denied: exec of '/usr/lib/cgi-bin/printenv.pl' failed
[Mon Oct 24 11:04:25 2011] [error] [client 127.0.0.1] Premature end of script headers: printenv.pl

Alguma sugestão sobre como posso corrigir isso e executar scripts CGI no meu host local?

    
por itcplpl 24.10.2011 / 17:15

2 respostas

2

Eu também tive esse problema. Descobri que eu tinha definido as permissões .pl files para 775 . O Apache não permite que o usuário grave. Tente alterar as permissões do seu arquivo .pl para 755 .

Se não for, verifique as configurações de permissão do seu site em /etc/apache2/sites-available .

    
por John 06.01.2012 / 05:36
2

Eu tive exatamente esse problema (exatamente com os mesmos caminhos, diretórios, permissões, etc.) há pouco tempo, e de repente entendi o que eu li em algum lugar na documentação do Apach2 sobre uma semana atrás.

É isso - tudo que você configurou até agora é bom, mas por questões de segurança, o apache não irá executar nenhum arquivo (CGI, Perl, C, etc.) a menos que seu a permissão de gravação (w) é removida completamente .

Faça com que as permissões sejam assim: -r-xr-xr-x

Então deve funcionar bem. Espero que isso ajude, deixe-me saber se ainda não funciona.

    
por Josh 30.09.2012 / 23:43