Apache mostrando “incompatibilidade de versão Python” com mod_wsgi

1

Estou tentando fazer o web.py funcionar.

Eu compilei o mod_wsgi para usar python2.6 e configurei meu virtualhost corretamente (pelo menos eu tenho certeza que é!). O hello, aplicativo mundial continua aparecendo como 404. Eu mudei o nível de log do Apache para info. e estou vendo o seguinte:

[Wed Sep 28 15:41:12 2011] [info] mod_wsgi (pid=25969): Attach interpreter ''.
[Wed Sep 28 15:42:55 2011] [info] mod_wsgi (pid=25969): Create interpreter 'clearpoint.turnleftllc.com|/budgetcalculator'.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Destroying interpreters.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Destroy interpreter 'clearpoint.turnleftllc.com|/budgetcalculator'.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Cleanup interpreter ''.
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Terminating Python.
[Wed Sep 28 15:45:33 2011] [error] Exception KeyError: KeyError(-1216178416,) in <module 'threading' from '/usr/lib/python2.6/threading.pyc'> ignored
[Wed Sep 28 15:45:33 2011] [info] mod_wsgi (pid=25969): Python has shutdown.
Fatal Python error: Interpreter not initialized (version mismatch?)

Em relação ao KeyError, não sei ao certo de onde vem isso. Eu testei o aplicativo a partir da linha de comando (python26 code.py) e ele é executado sem erro. Não dá nenhuma saída de fato.

Apenas no caso, aqui está minha configuração do VirtualHost, bem como o código do aplicativo:

Código Python (obtido diretamente do site web.py):

#!/usr/bin/python26
import web

urls = (
        '/.*', 'index'
        )

class index:
    def GET(self):
        return "Hello, world!"


app = web.application(urls,globals()).wsgifunc()

VirtualHost:

<VirtualHost xxx.xxx.xxx.xxx:80>
        ServerAdmin "[email protected]"
        ServerName clearpoint.turnleftllc.com
        ServerAlias clearpoint
        ErrorLog logs/clearpoint_error_log

        DocumentRoot /home/turnleftllc/public_html/cpccs
        WSGIScriptAlias /budgetCalculator /home/turnleftllc/public_html/cpccs/apps/code.py
        Alias /budgetCalculator/static /home/turnleftllc/public_html/cpccs/apps/static
        AddType text/html .py
        <Directory /home/turnleftllc/public_html/cpccs>
                Order allow,deny
                Allow from all
                AllowOverride All
        </Directory>
        <Directory /home/turnleftllc/public_html/cpccs/apps>
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>

Estou usando o CentOS5, cujo padrão é python2.4. Eu desinstalei e recompilei o mod_wsgi para python2.6 (como você pode ver na saída, ele está inicializando o 2.6).

Qualquer ajuda seria muito apreciada!

    
por Tom Thorogood 29.09.2011 / 01:00

1 resposta

1

Verifique se você ainda não está carregando o mod_python no mesmo Apache.

Leia o texto a seguir e valide sua instalação.

link    link

link

A mensagem KeyError é porque você está usando a versão mod_wsgi antiga e não a mais recente, portanto, se você criou a partir do código-fonte, certifique-se de usar o mod_wsgi 3.3.

    
por 29.09.2011 / 02:35