O Apache2.4.7 no Ubuntu 14.04 não executará o arquivo cgi do Python. O site exibe o código python

7

Descrição do problema:

Quando carrego 127.0.0.1/cgi-bin/test.cgi no meu navegador, meu test.cgi é tratado como um arquivo de texto em vez de um arquivo python.

Descartando a possibilidade de o erro estar relacionado ao código python:

  • Não consigo obter um erro intencional de 500, não importa o que eu faça com o código python.

  • E eu fiz o arquivo cgi executável via sudo chmod +x .

  • Já fiz isso antes em versões anteriores do Ubuntu sem problema.

Teoria:

Eu acredito que o problema está na minha configuração. Abaixo está minha configuração de dois arquivos, apache2.conf e 000-default .

Eu colei coisas diferentes para fazer meus arquivos de configuração funcionarem, sempre que posso. Este é apenas um instantâneo do que esses dois arquivos parecem no momento de escrever isso.

Obrigado, antecipadamente!

/etc/apache2/apache2.conf :

Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf

<Directory /home/isaac/www/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

AccessFileName .htaccess

<FilesMatch "^\.ht">
    Require all denied
</FilesMatch>

LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent


IncludeOptional conf-enabled/*.conf


IncludeOptional sites-enabled/*.conf

/etc/apache2/sites-available/000-default :

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /home/isaac/www
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

ScriptAlias /cgi-bin/ /home/isaac/www/cgi-bin/
    <Directory "/home/isaac/www/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
        AddHandler cgi-script .py
        AddHandler default-handler .html .htm
    </Directory>
    
por Isaac 09.11.2014 / 02:51

1 resposta

9

O primeiro problema seria porque o módulo CGI não foi habilitado, então o Apache não está processando nada como CGI. Ativá-lo:

sudo a2enmod cgi

No Apache2.4, a configuração foi limpa consideravelmente e as coisas na definição default site foram movidas para arquivos de configuração em conf-available . Entre outras coisas, isso também inclui as linhas de configuração relacionadas a CGI vistas no site default de versões mais antigas. Estes foram movidos para /etc/apache2/conf-available/serve-cgi-bin.conf , que contém:

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

Isso causa o segundo problema. Modifique esse arquivo ou desative essa configuração:

sudo a2disconf serve-cgi-bin
    
por muru 09.11.2014 / 03:41