Question

J'ai été vendu sur mod_wsgi et apache plutôt que sur mod_python.J'ai toutes les pièces installées (django, apache, mod_wsgi) mais j'ai rencontré un problème de déploiement.

Je suis sous osx 10.5 avec apache 2.2 et django 1.0b2, mod_wsgi-2.3

Mon application s'appelle tred.

Voici les fichiers concernés :httpd-vhosts (inclus dans httpd-conf)

NameVirtualHost tred:80



  ServerName tred

  Alias /admin_media /usr/lib/python2.5/site-packages/django/contrib/admin/media

  
    Order allow,deny
    Allow from all
  

  Alias /media /Users/dmg/Sites/tred/media

  
    Order allow,deny
    Allow from all
  

  Alias / /Users/dmg/Sites/tred/

  
        Order allow,deny
        Allow from all
    

  WSGIScriptAlias / /Users/dmg/Sites/tred/mod_wsgi-handler.wsgi

  WSGIDaemonProcess tred user=dmg group=staff processes=1 threads=10
  WSGIProcessGroup tred


mod_wsgi-handle.wsgi

import sys
import os

sys.path.append(os.path.dirname(os.path.abspath(__file__)) + '/..')
os.environ['DJANGO_SETTINGS_MODULE'] = 'tred.settings'

import django.core.handlers.wsgi

application = django.core.handlers.wsgi.WSGIHandler()

Quand je vais à http://tred Je reçois une liste d'annuaire plutôt que le site Web rendu.Je pense avoir suivi correctement les tutoriels mais ce n'est visiblement pas correct.Que puis-je faire pour que cela fonctionne ?

Était-ce utile?

La solution

Que se passe-t-il si vous supprimez le Alias / directif?

Autres conseils

Notez que les directives Alias ​​et WSGIScriptAlias ​​n'ont pas la même priorité.Ainsi, ils ne seront pas traités dans l’ordre des dossiers tel qu’écrit.Au lieu de cela, toutes les directives Alias ​​ont priorité sur les directives WSGIScriptAlias.Ainsi, cela n'aurait pas eu d'importance si l'alias pour « / » apparaissait après WSGIScriptAlias, il aurait toujours eu la priorité.

Ça marche.Je ne sais pas pourquoi, mais c'est le cas.

Pour référence future:

Cela fonctionne parce qu'Apache traite les directives d'alias dans l'ordre et utilise la première correspondance.Ça frappait toujours Alias /, qui correspondra à n'importe quoi, avant WSGIScriptAlias.

Du mod_alias Documentation:

Premièrement, toutes les redirections sont traitées avant que les alias ne soient traités, et donc une requête qui correspond à un Redirect ou RedirectMatch aucun alias ne sera appliqué.Deuxièmement, les alias et les redirections sont traités dans l'ordre dans lequel ils apparaissent dans les fichiers de configuration, la première correspondance étant prioritaire.

essayez de suivre ce tutoriel - http://singlas.in/5-step-tutorial-for-using-django-with-apache-and-mod_wsgi/

vous essayez d'héberger le dossier Apache /var/www/ et l'application Django à la racine (/).Étant donné que la directive Alias ​​est prioritaire sur WSGIScriptAlias, elle restitue le répertoire Apache.

vous pouvez essayer d'héberger l'application Django sur /app.Vous pouvez également héberger le dossier /var/www/ à un emplacement différent comme /public

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top