J’exécute apache / os x et je sers des pages localhost pour tester django sur mon ordinateur portable. J’ai déjà vérifié tout ce qui suit
• python fonctionne correctement et à jour (2.5.1)
• django disponible pour python et à jour (1,1,0, ‘final’, 0)
• Le module mod_wsgi est chargé parmi les modules apache de mon apache config – Check!
• Le chemin d’access à l’application django se trouve dans vhost.conf avec les permissions appropriées – OK!
• mod_wsgi vhost.conf testé et fonctionnant correctement dans le répertoire de l’application django – l’application de test via localhost affiche 200 OK, «Bonjour tout le monde!
• l’application par défaut django a été créée avec ‘django-admin.py startproject mysite’
• L’application django fonctionne bien sur le port 8000 en utilisant le serveur de développement – OK!
• Le chemin d’access à la nouvelle application django (appelée mysite) est sur le chemin Python – vérifié!
Tout ceci est vérifié et quand j’exécute le script wsgi avec DJANGO_SETTINGS_MODULE settings.py et que je charge l’application django, je n’arrive toujours pas à importer les parameters mysite.settings, etc.
Étant donné que cela semble couvrir le dépannage de base, y a-t-il d’autres mesures à prendre pour trouver le problème?
================
Le chemin Python est valide, vérifié. Le serveur de développement django fonctionne correctement avec la ligne de commande sur le port 8000.
Le module typique d’Apache est chargé: LoadModule wsgi_module libexec / apache2 / mod_wsgi.so
vhost.conf est inclus dans la configuration d’apache comme suit
NameVirtualHost: * .80
Order allow,deny Allow from all Order allow,deny Allow from all WSGIDaemonProcess localhost user=username group=staff threads=25 WSGIProcessGroup localhost WSGIScriptAlias /mysite /users/useracct/Sites/mysite/mysite.wsgi Allow from all DocumentRoot /Users/useracct/Sites/
Virtualenv n’est pas configuré avec ce compte, c’est donc une cause de moins possible.
=======================
et le fichier de script wsgi (en essayant de le garder minimal):
import os, sys path = '/users/usracct/sites/mysite' if path not in sys.path: sys.path.append(path) os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
Essayez d’append / users / useracct / Sites / a à votre pythonpath dans votre fichier wsgi:
import os import sys ..... sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..') ....