O Apache não manipula scripts python (* .py) via navegador

1

Edit: OS é o CentOS 5

Eu instalei o Python 2.5.5 e estou tentando executar alguns scripts Python através do navegador.

Honestamente, eu não trabalhei com o Python antes. Eu tentei carregar o módulo python no Apache, mas ele já está carregado e foi ignorado. Eu também confirmei que eu posso executar scripts python da minha linha de comando se eu os tornar executáveis.

No entanto, quando coloco " link " no meu navegador, ele retorna o HTML não analisado da seguinte forma:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator,
 root@localhost and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.</p>
<p>More information about this error may be available
in the server error log.</p>
<hr>
<address>Apache/2.2.3 (CentOS) Server at www.example.com Port 80</address>
</body></html>

Eu também tenho o seguinte no meu arquivo httpd.conf.

AddHandler cgi-script .py

Estou perplexo porque não sei onde procurar daqui. Isso soa um sino para qualquer um? Espero que nada muito óbvio que eu esteja negligenciando aqui ...

Obrigado antecipadamente.

Edit: Encontrou o seguinte no error_log do Apache.

[Fri Feb 26 19:58:38 2010] [error] [client xxx.xxx.xxx.xxx] (13)Permission denied: exec of 'test.py' failed
[Fri Feb 26 19:58:38 2010] [error] [client xxx.xxx.xxx.xxx] Premature end of script headers: test.py
[Fri Feb 26 20:04:56 2010] [notice] mod_python: Creating 4 session mutexes based on 256 max processes and 0 max threads.
    
por Structure 26.02.2010 / 11:16

3 respostas

1

Erro 13 do apache indica um problema de permissões do sistema de arquivos.
O SElinux está ativado? (qual é a saída de "ls -laZ test.py")

Eu duvido que seja um problema com o ScriptAlias ou com o AddHandler / ExecCGI (qualquer um deles terá o apache para executar scripts) - já que você está recebendo um erro 500 e não o apache da fonte python está claramente tentando para executar o arquivo.

    
por 26.02.2010 / 15:39
1

Eu só usei o mod_python para uma instalação do Trac e eles fornecem instruções explícitas para sua aplicação.

No entanto, enquanto estávamos testando o mod_python, eu achava este artigo útil - você também pode .

    
por 26.02.2010 / 11:54
1

O Apache só executará arquivos localizados em diretórios cgi-bin designados. Todo o resto é considerado conteúdo que é passado para o espectador. Seu diretório raiz não é, e não deveria, ser marcado como tal.

Use a diretiva ScriptAlias <url-path> <directory> para configurar seus diretórios cgi-bin. Por exemplo: ScriptAlias /cgi-bin/ /webroot/cgi-bin/ . Copie seus scripts lá e, em seguida, chame o link . Isso deve funcionar para você.

    
por 26.02.2010 / 15:35