2008-08-31 18 views
8

के साथ सेटअप django मैं mod_python के बजाय mod_wsgi और apache पर बेचा गया है। मेरे पास सभी हिस्सों को स्थापित किया गया है (django, apache, mod_wsgi) लेकिन तैनाती की समस्या में भाग लिया है।WSGI और apache

मैं Apache 2.2 के साथ OSX 10.5 पर हूँ और 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-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() 

मैं एक निर्देशिका सूची प्राप्त जब मैं http://tred पर जाएँ:

यहाँ प्रासंगिक फ़ाइलें हैं प्रस्तुत वेबसाइट की बजाय। मुझे लगता है कि मैंने ट्यूटोरियल का सही ढंग से अनुसरण किया है लेकिन यह स्पष्ट रूप से सही नहीं है। यह काम करने के लिए मैं क्या कर सकता हूं?

उत्तर

6

यदि आप Alias / निर्देश हटाते हैं तो क्या होता है?

5

यह काम करता है। मुझे नहीं पता क्यों, लेकिन यह करता है।

भविष्य में संदर्भ के लिए:

यह काम करता है क्योंकि अपाचे क्रम में उर्फ ​​निर्देशों प्रोसेस करता है, और पहले मैच का उपयोग करता है। यह हमेशा Alias / पर मार रहा था, जो WSGIScriptAlias से पहले कुछ भी मैच करेगा।

mod_alias documentation से

:

सबसे पहले सभी पुनर्निर्देश संसाधित होने से पहले उपनाम कार्रवाई की जाती है, और इसलिए एक अनुरोध है कि मेल खाता है एक Redirect या RedirectMatch कभी नहीं उपनाम आवेदन किया है जाएगा। दूसरा, उपनाम और रीडायरेक्ट को पहले मैच लेने के साथ कॉन्फ़िगरेशन फ़ाइलों में दिखाई देने के क्रम में संसाधित किया जाता है।

7

ध्यान दें कि उपनाम और WSGIScriptAlias ​​निर्देशों की वही प्राथमिकता नहीं है। इस प्रकार, उन्हें फाइल ऑर्डर में लिखित रूप में संसाधित नहीं किया जाएगा। इसके बजाए, सभी एलियास निर्देशों को WSGIScriptAlias ​​निर्देशों पर प्राथमिकता मिलती है। इस प्रकार, अगर यह WSGIScriptAlias ​​के बाद '/' के लिए उपनाम दिखाई देता है तो यह महत्वपूर्ण नहीं होगा, फिर भी इसे प्राथमिकता दी जाएगी।

2

इस ट्यूटोरियल निम्नलिखित कोशिश - http://singlas.in/5-step-tutorial-for-using-django-with-apache-and-mod_wsgi/

आप अपाचे/var/www/फ़ोल्डर और Django एप्लिकेशन दोनों जड़ में (/) की मेजबानी के लिए कोशिश कर रहे हैं। चूंकि एलियास निर्देश WSGIScriptAlias ​​पर प्राथमिकता लेता है, यह अपाचे निर्देशिका प्रस्तुत कर रहा है।

आप django ऐप को/एप पर होस्ट करने का प्रयास कर सकते हैं। वैकल्पिक रूप से/var/www/फ़ोल्डर को किसी अन्य स्थान पर होस्ट करें जैसे सार्वजनिक/