Configurando o Apache 2.4 para permitir CGI no Debian Jessie

3

Eu sou novo na configuração do Sysadmin e do Apache. Tentando fazer o AWStats funcionar, mas na solução de problemas, tentei executar um simples script Hello World (saída html) na porta 8888 e bati em uma parede do 403 Forbidden.

Não é o script:

mikekilmer@glitchbox:/var/www/html$ perl /usr/lib/cgi-bin/hello.pl
Content-type: text/html

<HTML>

<HEAD>
<TITLE>Hello, world!</TITLE>
</HEAD>

<BODY>
<H1>Hello, world!</H1>
</BODY>

</HTML>

Shebang corresponde ao caminho para perl: #!/usr/bin/perl

Estas são as principais configurações:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

As permissões de diretório e arquivo são 755 e 644, sendo a propriedade root: root (nos arquivos cgi-bin e perl).

O html / index.html do Apache é exibido: link

Isso é o que o log de erros diz: [Sat Jun 06 05:53:24.412867 2015] [authz_core:error] [pid 28374:tid 140381836453632] [client 108.205.62.183:55886] AH01630: client denied by server configuration: /usr/local/apache2

Acho que talvez esteja faltando algo com o Configurando o Apache para permitir CGI.

Módulo 1. Nota: Se o Apache foi construído com suporte a módulos compartilhados, você precisa garantir que o módulo esteja carregado; no seu apache2.conf você precisa ter certeza de que a diretiva LoadModule não foi comentada. Uma diretiva configurada corretamente pode ser assim:

LoadModule cgi_module modules/mod_cgi.so

Não sei se foi criado com suporte a módulos compartilhados. Instalado com o apt-get. Não encontrando a linha LoadModule no arquivo de configuração. Se eu adicionar a linha acima da linha acima a apache2.conf , o Apache não reiniciará.

ScriptAlias 2. Há um ScriptAlias no arquivo de configuração, colocado lá pelo AWStats. A adição desta diretiva ScriptAlias /cgi-bin/ /usr/local/apache2/cgi-bin/ não pareceu fazer nada. Eu até tentei mover meu hello (ou eu deveria dizer hellp) script em /usr/local/apache2/cgi-bin/ ainda 403.

Usando explicitamente as opções Até tentei adicionar

Options +ExecCGI
AddHandler cgi-script .cgi

para a diretiva <Directory /var/www/> .

Tudo sem sucesso. Alguma idéia para o próximo passo?

    
por MikeiLL 06.06.2015 / 08:29

1 resposta

5
[Sat Jun 06 05:53:24.412867 2015] [authz_core:error] [pid 28374:tid 140381836453632] [client 108.205.62.183:55886] AH01630: client denied by server configuration: /usr/local/apache2

Isso significa que você não configurou a autorização do seu servidor da Web.

O que você quer fazer é garantir que você tenha algo como

<Directory /usr/local/apache2/cgi-bin>
    Require all granted
</Directory>

Note que no Debian, existe um sistema de configuração avançado que teria feito tudo isso para você, se você o tivesse usado; -)

Para isso, primeiro remova (ou comente) as coisas que você já adicionou. Então:

a2enmod cgi
service apache2 restart
    
por 08.06.2015 / 15:58