2013-05-31 4 views
7

Sto usando mod_wsgi per pubblicare un sito Web django, ma ho un errore interno del server. Ecco il log di Apache:Come posso ricostruire il mio mod_wsgi per usare python 2.7.3?

[Fri May 31 10:11:25 2013] [error] python_init: Python version mismatch, expected '2.7.2+', found '2.7.3'. 
[Fri May 31 10:11:25 2013] [error] python_init: Python executable found '/usr/bin/python'. 
[Fri May 31 10:11:25 2013] [error] python_init: Python path being used '/usr/lib/python2.7/:/usr/lib/python2.7/plat-linux2:/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/lib-old:/usr/lib/python2.7/lib-dynload'. 
[Fri May 31 10:11:25 2013] [warn] mod_wsgi: Compiled for Python/2.7.2+. 
[Fri May 31 10:11:25 2013] [warn] mod_wsgi: Runtime using Python/2.7.3. 
[Fri May 31 10:11:25 2013] [notice] Apache/2.2.22 (Ubuntu) DAV/2 mod_fcgid/2.3.6 mod_python/3.3.1 Python/2.7.3 mod_ssl/2.2.22 OpenSSL/1.0.1 mod_wsgi/3.3 mod_perl/2.0.5 Perl/v5.14.2 configured -- resuming normal operations 

Così sembra che ci sia una mancata corrispondenza tra la versione mod_wsgi e la versione runtime di Python. Come posso aggiornare questo?

+0

Tale versione non corrispondente non dovrebbe importare se mod_wsgi è legata a una versione condivisa della libreria Python e non staticamente. Assicurati di avere qualche tipo di registrazione per Django abilitato, o di email di errori agli amministratori. Assicurati inoltre di avere un modello 404 e 500 impostato per Django. –

+0

Segnalazione di bug https://bugs.launchpad.net/ubuntu/+source/libapache2-mod-python/+bug/1073147 – Sherbrow

risposta

5

Devi compilare mod_wsgi dal sorgente e reinstallare.

Molto probabilmente il più semplice:

$ ./configure 
$ make 
$ sudo make install 

The mod_wsgi documentation copre in dettaglio.

4

non ho dovuto compilare dai sorgenti, questo mi ha aiutato:

$ apt-get remove libapache2-mod-python libapache2-mod-wsgi 
$ apt-get build-dep libapache2-mod-python libapache2-mod-wsgi 
2

ricordatevi di controllare che il file wsgi.load e wsgi.conf esistono ancora riferimenti nella configurazione apache2. Per Ubuntu (e probabilmente Debian) che significa avere un collegamento simbolico da/etc/apache2/mods-disponibile per/etc/apache2/mods-enabled.

+0

Questo è molto ovvio ma a volte l'hai dimenticato. Grazie! – xxinerKYU