Opções O ExecCGI está desativado neste diretório: /var/www/index.py

6

Examinei muitas postagens com uma pergunta semelhante, mas nenhuma parece funcionar para mim

eu tenho o seguinte arquivo /etc/apache2/httpd.conf:

<Directory /var/www/index.py>
Options +ExecCGI
</Directory>

<Directory /var/www>
Options +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
AddHandler cgi-script .py
DirectoryIndex index.py         

</Directory>

<Directory /var/www/tiles>
  AddHandler mod_python .py
  PythonHandler TileStache::modpythonHandler
  PythonOption config /home/TileStache/tilestache.cfg
</Directory>

Quando tento acessar a página inicial como: apenas o nome do host: link Eu recebo o seguinte erro no log de erros:

Options ExecCGI is off in this directory: /var/www/index.py

mas quando eu vou para o link ele funciona bem.

Então eu estou supondo que algo está substituindo o diretório / var / www? Eu não tenho um arquivo .htaccess no diretório / var / www.

    
por Joshi 18.07.2013 / 19:08

2 respostas

1

Eu tive que modificar o seguinte arquivo:

/etc/apache2/sites-enabled/000-default

Alterado o diretório / var / www para incluir o + ExecCGI e AddHandler assim:

    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews +ExecCGI
            AllowOverride None
            Order allow,deny
            allow from all
            AddHandler cgi-script .py
    </Directory>
    
por 22.07.2013 / 20:52
1

Depois de ter ativado o módulo cgi com

sudo a2enmod cgi

Você pode ir e modificar o arquivo

/etc/apache2/sites-enabled/000-default

e encontre a seção que lê isso

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin/">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
</Directory>

isto diz ao apache que quando você encontra o host url, por exemplo

localhost/cgi-bin/ 

que deve verificar o diretório / usr / lib / cgi-bin para o arquivo que você solicitou e se ele acha que o executa. agora você pode fazê-lo executar a partir de qualquer diretório, adicionando o diretório dentro da diretiva Directory, por exemplo, se você quiser que ele seja / var / www (onde estão os arquivos cgi) você pode ter

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/var/www/">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
   </Directory>

com isso, um pedido para

localhost/script.cgi

deve funcionar perfeitamente. Além disso, certifique-se de ter o

libapache2-mod-perl

pacote instalado.

    
por 14.06.2014 / 09:44