Вопрос

Я был продан на mod_wsgi и apache, а не на mod_python.У меня установлены все компоненты (django, apache, mod_wsgi), но я столкнулся с проблемой развертывания.

Я работаю на osx 10.5 с apache 2.2 и django 1.0b2, mod_wsgi-2.3

Мое приложение называется tred.

Вот соответствующие файлы:httpd-vhosts (включен в 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-дескриптор.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()

Когда я иду в http://tred Я получаю список каталогов, а не отображаемый веб-сайт.Я думаю, что я правильно следовал инструкциям, но это явно неправильно.Что я могу сделать, чтобы это сработало?

Это было полезно?

Решение

Что произойдет, если вы удалите Alias / Директива?

Другие советы

Обратите внимание, что директивы Alias и WSGIScriptAlias не имеют одинакового приоритета.Таким образом, они не будут обрабатываться в файловом порядке, как записано.Вместо этого все директивы Alias получают приоритет над директивами WSGIScriptAlias.Таким образом, не имело бы значения, если бы псевдоним для '/' появился после WSGIScriptAlias, он все равно имел бы приоритет.

Оно работает. Я понятия не имею, почему, но это так.

Для будущего ссылки:

Он работает, потому что Apache обрабатывает псевдоним по порядку и использует первый матч. Это всегда ударило Alias /, что будет соответствовать чему -либо, до WSGIScriptAlias.

Из mod_alias документация:

Во -первых, все перенаправления обрабатываются до обработки псевдонимов, и поэтому запрос, который соответствует Redirect или RedirectMatch никогда не будет применять псевдонимы. Во -вторых, псевдонимы и перенаправления обрабатываются в том порядке, который они появляются в файлах конфигурации, причем первое матч имеет приоритет.

попробуйте следовать этому руководству - http://singlas.in/5-step-tutorial-for-using-django-with-apache-and-mod_wsgi/

вы пытаетесь разместить папку apache /var/www/ и приложение Django в корневом каталоге (/).Поскольку директива Alias имеет приоритет над WSGIScriptAlias, она отображает каталог apache.

вы можете попробовать разместить приложение django по адресу /app.В качестве альтернативы разместите папку /var/www/ в другом месте, например /public

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top