Você não tem permissão para acessar /index.py neste servidor

1

Estou configurando uma página de teste simples em Python. Eu só tenho dois arquivos: .htaccess e index.py. (Permissões para ambos definidos para 755) Eu recebo um erro 403 Proibido ao tentar visualizar a página - como posso corrigir isso?

.htaccess:

RewriteEngine On
AddHandler application/x-httpd-cgi .py
DirectoryIndex index.py

index.py:

#!/usr/bin/python
print "Content-type: text/html\n\n"
print "test"
    
por Yongho 07.09.2009 / 00:25

5 respostas

1

Você verificou seu log de erros? É o primeiro lugar para procurar.

Acho que seu AddHandler está incorreto. A documentação diz que é usada assim:

Syntax: AddHandler handler-name extension [extension] ...

application/x-httpd-cgi não é um manipulador, é um tipo MIME.

Você provavelmente precisará de ExecCGI on (consulte os docs ). Isso geralmente é habilitado para /cgi-bin/ , mas se o arquivo não estiver lá, você precisará de algo assim em .htaccess

Options +ExecCGI
AddHandler cgi-script .py

Isso depende do seu servidor, permitindo que .htaccess arquivos. Veja a documentação AllowOverride .

Você não precisa de RewriteEngine On e DirectoryIndex apenas define o arquivo retornado quando você clica no diretório de contenção (ou seja, /python/ ) sem nome de arquivo.

Esta solução apenas permite a execução de scripts .py usando mod_cgi . Outras soluções que sugeriram mod_python também funcionarão, mas isso é mais complexo e incorpora um interpretador Python nos processos do Apache. Isso não é necessário para a execução direta usando o interpretador Python do sistema.

    
por 07.09.2009 / 20:48
0

Você se certificou de que o diretório está visível? Eu tive problemas de permissões com diretórios interferir com os arquivos que eles continham no passado.

Além disso, o .htaccess funciona com outros scripts, como o perl ou o bash?

Geralmente há um manipulador padrão nos arquivos de configuração do Apache para Python (entregue ao mod-python, eu acredito). Se você remover o .htaccess, o script será executado usando o manipulador padrão?

    
por 07.09.2009 / 03:30
0

Eu apenas tentei isso no meu servidor e funcionou bem.

  • Não parecia necessário para CHMOD o htaccess.
  • Você já tentou acessar "yoursite.com/folder" e "yoursite.com/folder/index.py"? Ambos funcionaram para mim, mas talvez essa linha DirectoryIndex não está funcionando corretamente para você? Se eu removesse essa linha, somente /index.py funcionaria.

Além disso, tente adicionar esses arquivos ao seu htaccess (substituindo conforme necessário):

AddHandler mod_python .py
PythonHandler index
PythonDebug On 

Em outro dos meus sistemas, essas linhas eram necessárias para fazer o manipulador python funcionar (usando o mod_python).

    
por 07.09.2009 / 20:05
0

Noto que você não mencionou onde no seu sistema de arquivos você está fazendo tudo isso. Se a pasta em que você está trabalhando não tiver permissões definidas na configuração do Apache, você receberá um 403, independentemente das permissões do Unix definidas no sistema de arquivos. O Apache não servirá arquivos fisicamente armazenados em locais que não foram informados que podem ser usados na configuração.

Isso talvez seja um problema, já que você provavelmente está trabalhando dentro do seu diretório web normal, mas vale a pena testar, no entanto. Coloque um arquivo de texto simples na mesma pasta e tente visualizá-lo, se você vê-lo, então esse não é o problema, se você ainda tiver um 403 dê uma olhada na configuração do Apache.

Além disso, acho que a sugestão de Markdrayton está bem.

    
por 08.09.2009 / 13:24
0

Altere seu AddHandler para AddHandler mod_python .py .

Eu prefiro editar /etc/apache2/mods-available/dir.conf e adicionar index.py ao invés de usar DirectoryIndex no seu .htaccess .

Altere seu index.py para:

#!/usr/bin/env python


def index(req):
    return "test"
    
por 05.06.2014 / 00:57