2011-02-03 14 views
6

एक django साइट सेट करने और dev सर्वर पर चलने के बाद, मैं अंततः अनुशंसित mod_wsgi/apache22 का उपयोग करके उत्पादन वातावरण में इसे तैनात करने के लिए चारों ओर मिल गया। मैं वर्तमान में इसे विंडोज एक्सपी मशीन पर तैनात करने के लिए सीमित हूं।Django + Apache + Windows WSGIDaemonProcess वैकल्पिक

मेरी समस्या यह है कि मैंने लिखा है कि कई django विचारों ने पाइथन subprocess मॉड्यूल का उपयोग फाइल सिस्टम पर प्रोग्राम चलाने के लिए किया है। subprocess.Popen चलाते समय मुझे त्रुटियां मिलती रहती हैं मैंने कई SO प्रश्नों को देखा है जिन्होंने इस बारे में पूछा है, और स्वीकृत उत्तर समस्या को संभालने के लिए WSGIDaemonProcess का उपयोग करना है (अपाचे उपयोगकर्ता की अनुमति के कारण, मुझे विश्वास है)।

इसके साथ एकमात्र समस्या यह है कि WSGIDaemonProcess Windows पर mod_wsgi के लिए उपलब्ध नहीं है। क्या कोई तरीका है कि मैं mod_wsgi/apache/windows/subprocess का एक साथ उपयोग कर सकता हूं?

+0

http://stackoverflow.com/questions/3703794/django-app-stops-working-when-deployed-on-apache-subprocess-runs-but-fails वही सवाल प्रतीत होता है, कोई जवाब नहीं के साथ । – Randy

+3

"मुझे त्रुटियां मिल रही हैं" मदद करने के लिए हमारे लिए बहुत अस्पष्ट है। क्या त्रुटियां, विशेष रूप से? कृपया कोड का संक्षिप्त टुकड़ा और वास्तविक त्रुटि पोस्ट करें। –

+0

हल हो गया। एक लिनक्स मशीन मिली जहां WSGIDaemonProcess उपलब्ध है। – Randy

उत्तर

1

वैसे भी subprocesses को mod_wsgi के भीतर से खोलना अच्छा नहीं है।

एक वैकल्पिक (और एक आम एक) Django चला रहे WSGI सर्वर से अपाचे से अपाचे पक्ष और आगे अनुरोध पर mod_proxy उपयोग करने के लिए है। इसका अपाचे की मेमोरी स्पेस से पाइथन थ्रेड को स्थानांतरित करने का लाभ है wsgi servers के लिए दर्जनों विकल्प हैं; टर्ननाडो और गनिकोर्न दो लोकप्रिय विकल्प हैं, और गनिकोर्न * Django के साथ एकीकृत करता है।

* एकीकृत करके मेरा मतलब है कि यह एक प्रबंधन.py आदेश प्रदान करता है यदि आप इसे INSTALLED_APPS में जोड़ते हैं।

1

मैं इस कॉन्फ़िगरेशन के तहत उपप्रोसेस का उपयोग करने की कोशिश कर रहे कुछ मुद्दों में भाग गया। के बाद से मुझे यकीन है कि क्या विशेष रूप से आप मुसीबत के साथ मैं चीजें हैं जो लेकिन मुझे हल करने के लिए के लिए आसान नहीं थे मसा में के एक जोड़े को साझा कर सकते था नहीं कर रहा हूँ बहुत तुच्छ लगते हैं।

  1. मुझे एप्लिकेशन निष्पादित करने का प्रयास करते समय अनुमतियों से संबंधित त्रुटियां प्राप्त हो रही थीं। मैंने काफी कुछ खोजा लेकिन विंडोज विशिष्ट उत्तरों को खोजने में मुश्किल हो रही थी। यह स्पष्ट था: मैंने उस उपयोगकर्ता को बदल दिया जिसके अंतर्गत अपाचे उच्च अनुमति वाले उपयोगकर्ता को चलाता है। (ध्यान दें, इसके साथ सुरक्षा प्रभाव हैं इसलिए आप यह सुनिश्चित करना चाहते हैं कि आप समझें कि आप क्या कर रहे हैं)।
  2. Django (आपकी कॉन्फ़िगरेशन के आधार पर) तारों को यूनिकोड के रूप में स्टोर कर सकता है। मैं एक कमांड लाइन आवेदन मैं मेरे विचार से कुछ मानकों, जिसमें से पारित कर दिया सही तर्क होने के बावजूद दुर्घटनाग्रस्त हो गया था के साथ भागने की कोशिश कर रहा था। बाद हताशा की एक जोड़ी घंटे मैं एक प्रकार (args) जो बल्कि मेरी उम्मीद स्ट्रिंग से <type 'unicode'> लौटे किया था। एक त्वरित रूपांतरण ने उस मुद्दे को हल किया।
संबंधित मुद्दे