Application Django non visible

J’essaie de déployer une application Django pour la première fois en utilisant mod_wsgi avec Apache sur une machine virtuelle Ubuntu 12.04 . J’ai suivi plusieurs tutoriels, en particulier le blog Ayman Farhat , cette excellente vidéo YouTube et bien sûr la documentation officielle Django

Cela fait suite à une question antérieure que j’ai postée ici, me demandant pourquoi mon enquête sur Django ne fonctionnait pas simplement lorsque je l’ai téléchargée dans / var / www / (blush!).

Je ne suis pas sûr de quelle étape me manque. Le projet est capable de démarrer sur le serveur via python manage.py runserver sans erreur. J’ai également lancé python manage.py collectstatic sans erreur.

Je redémarre ensuite Apache avec

 sudo service apache2 restart 

Cependant, lorsque je vais à l’URL http://phaedrus.scss.tcd.ie/bias_experiment/surveythree/ où je m’attends à voir l’enquête, rien n’est là. Je viens de voir l’erreur 404 standard.

Je ne suis vraiment pas sûr de ce que je dois faire ensuite ou pourquoi cela ne fonctionne pas.

Voici mon installation et ce que j’ai essayé jusqu’à présent.

NOTE: J’ai un projet Bias_Experiment Django créé dans Pydev. Il contient trois applications contenues dans un dossier src .

  • enquête (mon projet de travail)
  • sondages (un tutoriel que je suivais)
  • partial_experiment (l’application racine avec mon fichier de parameters, etc.)

Ma structure de projet

entrer la description de l'image ici

Mon hôte virtuel situé dans /etc/apache2/sites-available/bias_experiment

  ServerAdmin [email protected] ServerName kdeg-vm-18.scss.tcd.ie ServerAlias http://collegeserver.ie/bias_experiment WSGIScriptAlias / var/www/bias_experiment/src/bias_experiment/index.wsgi Alias /static/ /var/www/bias_experiment/src/bias_experiment/static/  Options -Indexes   

Mon fichier WSGI situé dans /var/www/bias_experiment/src/bias_experiment/index.wsgi

 import os import sys import site # Add the site-packages of the chosen virtualenv to work with site.addsitedir('~/var/www/bias_experiment/lib/python2.7/site-packages') # Add the app's directory to the PYTHONPATH sys.path.append('/var/www/bias_experiment') sys.path.append('/var/www/bias_experiment/src/bias_experiment') os.environ['DJANGO_SETTINGS_MODULE'] = 'bias_experiment/src/bias_experiment.settings' # Activate your virtual env activate_env=os.path.expanduser("~/var/www/bias_experiment/bin/activate_this.py") execfile(activate_env, dict(__file__=activate_env)) import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler() 

Mes modèles d’URL de bias_experiment/src/bias_experiment/urls.py

 urlpatterns = patterns('', url(r'^polls/', include('polls.urls', namespace="polls")), url(r'^admin/', include(admin.site.urls)), url(r'^surveythree/$', SurveyWizard.as_view([SurveyForm1, SurveyForm2, SurveyForm3, SurveyForm4, SurveyForm5])), ) 

L’adresse que vous allez voir dans votre navigateur ne correspond pas aux directives ServerName ou ServerAlias ​​de votre configuration Apache, de sorte que virtualhost ne saura pas répondre à cette requête.

Notez que ServerAlias ​​doit être similaire à ServerName – un nom d’hôte, pas une URL, sans préfixe ou chemin http. Notez également que vous pouvez avoir plusieurs valeurs pour ServerAlias ​​si vous avez besoin de virtualhost pour répondre à de nombreux noms d’hôte.

Si vous voulez que l’application Django soit servie sous / polarisation_expérience, cela devrait faire partie de l’alias WSGIScript.

Donc ça devrait être:

 ServerAlias phaedrus.scss.tcd.ie WSGIScriptAlias /bias_experiment /var/www/bias_experiment/src/bias_experiment/index.wsgi 

Je suis également confus au sujet des emplacements de votre code. Est-ce dans / var / www / … ou / home / whoever / var / www? Votre fichier wsgi fait référence à ce dernier, mais le fichier de configuration Apache contient le premier.

Ensuite, virtualenv est censé prendre soin de définir tous les chemins Python. Donc, puisque vous exécutez le script activate, vous pouvez supprimer les lignes qui modifient sys.path et site.addsitedir. Vous devrez peut-être conserver celui qui ajoute le répertoire src .

Un autre problème concerne votre DJANGO_SETTINGS_MODULE. Ce devrait être un module Python, pas un chemin de fichier – en fait, ce que vous avez entre eux est un croisement. Comme src trouve sur le chemin Python, vous pouvez simplement définir ceci sur “biais_experiment.settings”.