2009-12-23 17 views
9

मैं django पर नया हूं। मैंने कोशिश की लेकिन मैं तैनात नहीं कर सकता। fcgi (तेज cgi) और WSGI: मैंalwaysdata.com पर Django को तैनात करना

#!/usr/bin/python 
import sys 
import os 

base = os.path.dirname(os.path.abspath(__file__)) + '/..' 
sys.path.append(base) 

os.environ['DJANGO_SETTINGS_MODULE'] = 'myfirstapp.settings' 

import django.core.handlers.wsgi 

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

AddHandler fcgid-script .fcgi 
Options +FollowSymLinks 
RewriteEngine On 
RewriteBase/
RewriteRule ^(media/.*)$ - [L] 
RewriteRule ^(adminmedia/.*)$ - [L] 
RewriteCond %{REQUEST_URI} !(cgi-bin/myproject.fcgi) 
RewriteRule ^(.*)$ mysite.fcgi/$1 [L] 
+0

मुझे एक काम कर उदाहरण दे – Emrah

+0

क्या आपको त्रुटियां मिलती हैं? आप लाइन 5 पर एक + गायब हैं, और क्या आपका मतलब "../" "/ .." है? – Seth

उत्तर

21

यहाँ alwaysdata wiki entry है FastCGI साथ Django की स्थापना के लिए। केवल नीचे की ओर: यह फ्रेंच में लिखा है।

ठीक है, मैं फ्रेंच बोलते नहीं है, लेकिन क्या यह मूल रूप से कहते हैं:

  1. अपने Django परियोजना के फ़ोल्डर में public नाम के एक निर्देशिका बनाएं।

    AddHandler fcgid-script .fcgi 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ django.fcgi/$1 [QSA,L] 
    
  2. आप अगर ':

    #!/usr/bin/python 
    import os, sys 
    
    _PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
    sys.path.insert(0, _PROJECT_DIR) 
    sys.path.insert(0, os.path.dirname(_PROJECT_DIR)) 
    
    _PROJECT_NAME = _PROJECT_DIR.split('/')[-1] 
    os.environ['DJANGO_SETTINGS_MODULE'] = "%s.settings" % _PROJECT_NAME 
    
    from django.core.servers.fastcgi import runfastcgi 
    runfastcgi(method="threaded", daemonize="false") 
    
  3. इसके बाद, निम्नलिखित सामग्री के साथ public फ़ोल्डर में एक .htaccess बनाएँ:

  4. कि निर्देशिका में निम्नलिखित सामग्री के साथ फ़ाइल django.fcgi बनाने django व्यवस्थापक इंटरफ़ेस को शामिल करने की योजना बना रहे हैं, इस public निर्देशिका में इस प्रतीकात्मक लिंक को बनाएं:

    ln -s /usr/local/alwaysdata/python/django/1.1/django/contrib/admin/media/ media 
    
  5. अंत अपने फ़ोल्डर ट्री पदानुक्रम किसी भी तरह इस तरह दिखना चाहिए में:

    myproject/ 
        __init__.py 
        manage.py 
        public/ 
         django.fcgi 
         .htaccess 
         media/ 
        settings.py 
        urls.py 
        myapp/ 
         views.py 
         models.py 
    

आशा इस मदद करता है। मैंने व्यवस्थापक से बात की, और उसने कहा कि वह जल्द ही एक अंग्रेजी विकी प्रदान करेगा। आइए उम्मीद करते हैं कि यह जल्द ही होने वाला है।


अद्यतन: एक English wiki article now.

+0

यह काम किया! आपके पहले Django संचालित पृष्ठ पर बधाई। धन्यवाद ... – Emrah

+5

+1 एक भाषा बोलते नहीं है में लिखा डॉक्स के साथ एक प्रणाली के बारे में एक जवाब देने के लिए। शायद इसके लिए एक नया बैज होना चाहिए, बस यह सुनिश्चित न करें कि इसे क्या कहा जाएगा। बहुभाषी-nontranslating-जंगली गधा लगता है-hackage? नहीं, बहुत लंबा। :-) –

+2

AlwaysData हर रोज अधिक से अधिक अंतरराष्ट्रीय बन रहा है। मुझे लगता है कि अगर आप अंग्रेजी विकी (यह विकी है तो आप योगदान कर सकते हैं) के लिए तैयार होने के लिए तैयार हैं तो वे बहुत खुश होंगे। यदि दस्तावेज़ीकरण फ्रेंच में है, तो समर्थन विश्वव्यापी है :) – luc

6

आप दो अलग अलग वेब सर्वर एकीकरण तरीकों मिश्रण की कोशिश कर रहे कैसे कर सकते हैं।

आपका पहला स्निपेट वेब सर्वर के साथ एक wsgi इंटरफ़ेस के लिए है और अपाचे के साथ Django को एकीकृत करने के लिए अनुशंसित विधि है। बहुत अच्छा संसाधनों (उदाहरण सहित) आप इस ठीक से सेट अप मदद करने के लिए आधिकारिक Django डॉक्स How to use Django with Apache and mod_wsgi और mod_wsgi डॉक्स Integration with Django

(AddHandler लाइन के साथ) दूसरे टुकड़ा fcgi के लिए है में पाया जा सकता। यह इंटरफ़ेस का प्रकार है जो आमतौर पर डीजेंगो को lighttpd और nginx वेब सर्वर से इंटरफ़ेस करने के लिए उपयोग किया जाता है। एफसीजीआई इंटरफ़ेस स्थापित करने के लिए संसाधन आधिकारिक Django दस्तावेज़ How to use Django with FastCGI, SCGI, or AJP में पाया जा सकता है।

चूंकि ऐसा लगता है कि alwaysdata.com केवल इस विधि से फंस गए FastCGI (fcgi) इंटरफ़ेस का उपयोग करता है। ऐसा लगता है कि वहाँ उनके विकि पृष्ठ Déployer une application Django पर उदाहरण हैं और खासकर यदि आप इस के साथ अपना पहला (WSGI) टुकड़ा बदलना भी होगा जैसे:

#!/usr/bin/python 
import os, sys 

_PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
sys.path.insert(0, _PROJECT_DIR) 
sys.path.insert(0, os.path.dirname(_PROJECT_DIR)) 

_PROJECT_NAME = _PROJECT_DIR.split('/')[-1] 
os.environ['DJANGO_SETTINGS_MODULE'] = "%s.settings" % _PROJECT_NAME 

from django.core.servers.fastcgi import runfastcgi 
runfastcgi(method="threaded", daemonize="false") 
1

अब हम मिल में अंग्रेज़ी में एक लेख (दो महीने के बाद से) है: Django on alwaysdata.com

सादर,

संबंधित मुद्दे