Servidor Apache2 não executando script CGI

1

Eu tenho um servidor Apache2 local (instalado com LAMP). O diretório do Apache2 é /etc/apache2 e a raiz do meu documento é /var/www . Sob a raiz do documento, há um diretório /cgi-bin , no qual meu script cgi.py é. Executar com ./cgi.py fornece a saída desejada, mas quando eu aponto meu navegador para o arquivo que ele me oferece para baixá-lo. Aparentemente, isso geralmente ocorre devido a um problema de acesso , mas depois adicionando a+x permissões ao arquivo, o problema permanece.

Aqui está o script simples:

#!/usr/bin/python3
# -*- coding: UTF-8 -*-

#enable debugging
import cgitb
cgitb.enable()

print("Content-Type: text/plain;charset=utf-8");
print()

print("Hello World!");

No% ap_de% do diretório apache2, adicionei o seguinte (estava vazio antes dele):

ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory /var/www/cgi-bin/>
    Options ExecCGI
    AddHandler cgi-script .cgi .py
</Directory>

Qual poderia ser a razão pela qual o script não será executado?

EDIT: Erro de novato, não reiniciei o servidor depois de fazer alterações em httpd.conf . Depois de fazer isso o script foi executado. Obrigado a Jenny D por sugerir isso.

    
por 5th 20.02.2013 / 11:35

1 resposta

0

O servidor só lerá seu arquivo de configuração na inicialização ou quando você informar especificamente para recarregá-lo. Depois de alterar o httpd.conf, você precisa reiniciar o servidor ou recarregar a configuração (executando apachectl restart ou executando service httpd reload ou outra coisa, dependendo do sistema operacional / configuração).

Se você deseja ter uma configuração que seja relida sem reiniciar o servidor, há htaccess . No entanto, desde que isso signifique que o apache irá verificar novamente o arquivo para cada conexão, ele diminuirá o servidor um pouco. Se isso é um problema, certamente dependerá de quão grande é a carga que o servidor tem para começar.

    
por 20.02.2013 / 12:07