J'essaie d'utiliser un Django application sur ma machine Ubuntu locale. Cependant, le site ne fonctionne pas et mon /var/log/Apache2/errors.log
est rempli de messages comme celui-ci:
ImportError: No module named site
Mon /var/log/Apache2/error.log
(pour aujourd'hui) ressemble à ceci:
$ cat error.log | uniq -c
1 [Wed Jun 29 09:37:37 2011] [notice] Apache/2.2.17 (Ubuntu) mod_wsgi/3.3 Python/2.7.1+ configured -- resuming normal operations
12966 ImportError: No module named site
C'est l'avis qu'il a démarré lorsque j'ai allumé ma machine, suivi de 12 966 lignes en disant que le no module named site
message
notez l'absence de champ DateTime. Ces erreurs sont répétées même lorsque vous n'allez pas sur le site Web (c'est-à-dire même lorsque vous ne faites pas de demandes Web). Lorsque vous allez sur le site Web dans un navigateur, cela se bloque, comme si vous attendez un grand téléchargement.
J'utilise un python 2.5 Virtualenv avec beaucoup de paquets (incl. Django 1.1) installé avec PIP. J'ai mod_wsgi chargé:
$ ls -l /etc/Apache2/mods-enabled/wsgi*
lrwxrwxrwx 1 root root 27 2010-10-04 16:50 /etc/Apache2/mods-enabled/wsgi.conf -> ../mods-available/wsgi.conf
lrwxrwxrwx 1 root root 27 2010-10-04 16:50 /etc/Apache2/mods-enabled/wsgi.load -> ../mods-available/wsgi.load
J'utilise "TIX" comme nom de domaine défini sur localhost in /etc/hosts
$ grep tix /etc/hosts
127.0.0.1 tix
Voici ma configuration Apache (vous pouvez voir certaines tentatives pour le faire fonctionner, les lignes commentées, etc.:
# mod-wsgi enabled virtual Host
WSGISocketPrefix /home/rory/tix/tix_wsgi/tmp
WSGIPythonHome /home/rory/tix/virtualenv2.5/lib/python2.5/
UnSetEnv PYTHONSTARTUP
SetEnv PYTHONPATH /home/rory/tix/virtualenv2.5/lib/python2.5/
#WSGIPythonEggs /home/rory/svn/tix/tmp/python-eggs
<VirtualHost 127.0.0.1:80>
ServerName tix
Alias /media /home/rory/tix/tix/media
Alias /Selenium /home/rory/tix/tix/tests/Selenium
<Directory /home/rory/tix/tix/media>
SetHandler None
Order allow,deny
Allow from all
</Directory>
WSGIDaemonProcess tix user=tix_wsgi group=tix_wsgi processes=4 threads=1 python-path=/home/rory/tix/virtualenv2.5/lib/python2.5/site-packages
WSGIScriptAlias / /home/rory/tix/tix/Apache/loader.wsgi
WSGIProcessGroup tix
CustomLog /var/log/Apache2/tix_access.log combined
ErrorLog /var/log/Apache2/tix_error.log
<Location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
</Location>
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{HTTP_Host} ^media.tix$ [NC]
RewriteRule .? http://tix/media%{REQUEST_URI} [R=301,L]
</IfModule>
</VirtualHost>
Voici mon loader.wsgi:
J'avais import site
Dans ce fichier, que je pensais avoir causé le problème, mais je l'ai supprimé et les erreurs continuent à venir.
# loader.wsgi - WSGI adapter for tix Django project
# The python paste wrapper catches Apache 500 errors (Internal Server Errors) and gives debug output
# See http://pythonpaste.org/modules/exceptions.html
import os
import sys
os.environ['Django_SETTINGS_MODULE'] = 'tix.settings.base'
from paste.exceptions.errormiddleware import ErrorMiddleware
import Django.core.handlers.wsgi
tixette = Django.core.handlers.wsgi.WSGIHandler()
application = ErrorMiddleware(tixette, debug=True, error_email='[email protected]', error_subject_prefix='Alert: wsgi loader python paste: ', error_log='/tix/1.0/logs/paste.log', show_exceptions_in_wsgi_errors=False)
Cette configuration utilisée pour fonctionner correctement sur Ubuntu 10.10, mais depuis que j'ai mis à niveau vers Ubuntu 11.04, je reçois les erreurs ci-dessus.
Votre mod_wsgi a été compilé pour Python 2.7. Vous ne pouvez pas ensuite essayer de le pointer sur un Python 2.5 Environnement virtuel.
En outre, le cadre:
WSGIPythonHome /home/rory/tix/virtualenv2.5/lib/python2.5/
pointe à la mauvaise chose même s'il s'agissait d'un Python 2.7 Environnement virtuel.
Les paramètres:
UnSetEnv PYTHONSTARTUP
SetEnv PYTHONPATH /home/rory/tix/virtualenv2.5/lib/python2.5/
ne ferez rien et ne sait pas où vous avez eu l'idée que vous puissiez faire cela.
FWIW, la documentation mod_wsgi sur les environnements virtuels peut être trouvée à l'adresse suivante:
https://modwsgi.readthedocs.io/fr/develop/user-guides/virtual-environments.html
Cela ne va pas vous aider, car vous semblez avoir un problème plus fondamental avec votre mod_wsgi et Python installations pour commencer. Le problème étant potentiellement une variante de:
Où avez-vous obtenu le mod_wsgi.so que vous utilisez?
Où est le Python 2.7 installé?
Quels autres Python versions avez-vous installé et où?