7
votes

Comment puis-je reconstruire mon mod_wsgi pour utiliser Python 2.7.3?

J'utilise mod_wsgi pour servir un site Web Django, mais j'ai une erreur de serveur interne. Voici le journal Apache:

[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


2 commentaires

Cette inadéquation de la version n'aurait pas d'importance si MOD_WSGI est liée à une version partagée de la bibliothèque Python et non statique. Assurez-vous d'avoir une sorte de journalisation pour Django activé ou par courrier électronique d'erreurs aux administrateurs. Assurez-vous également d'avoir un modèle de 404 et 500 configuré pour Django.


Rapport de bogue bugs.Launchpad.net/ubuntu/+source / libapache2-mod-python / + bug / ...


4 Réponses :


5
votes

Vous devez compiler mod_wsgi à partir de la source et réinstaller.

très probablement aussi simple que: xxx

la documentation MOD_WSGI couvre cela en détail.


0 commentaires

4
votes

Je n'avais pas à compiler à partir de la source, cela m'a aidé:

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


0 commentaires

2
votes

N'oubliez pas de vérifier que les fichiers wsgi.load et wsgi.conf sont toujours référencés dans la configuration de Apache2. Pour Ubuntu (et probablement Debian), cela signifie avoir un lien symbolique de / etc / apache2 / mods-disponible sur / etc / apache2 / mods-activé.


1 commentaires

C'est très évident mais parfois vous venez d'oublier. Merci!



2
votes

avait le même problème, résolu en poursuivant des environnements virtuels.

pour configuration: https://www.digitalocean.com/community/tatudials/how-a-run- django-with-mod_wsgi-and-Apache-with-A-virtualenv-python-Environment-On-A-Debian-VPS Il suffit de suivre les mêmes étapes, configurez un Virtualenv dans le même dossier que mon application Django. P>

a fini par la configuration d'hôte virtuelle suivante: p>

<Directory /storage/sandbox/www/django/sampleapp/static>
    Allow from all
    Order deny,allow
</Directory>
<Directory /storage/sandbox/www/django/sampleapp/media>
    Allow from all
    Order deny,allow
</Directory>
WSGIScriptAlias / /storage/sandbox/www/django/sampleapp/sampleapp/wsgi.py
WSGIPythonPath /storage/sandbox/www/django/sampleapp/:/storage/sandbox/www/django/env/lib/python2.7/site-packages
<Directory /storage/sandbox/www/django/sampleapp/sampleapp>
    <Files wsgi.py>
        Allow from all
        Order deny,allow
    </Files>
</Directory>


0 commentaires