मैं Apache2 के साथ पायथन का उपयोग कैसे करूं?


13

मैं अजगर को अपाचे के साथ काम करने की कोशिश कर रहा हूं, हालांकि मैं सीजीआई या mod_python के साथ सफलता पाने में असफल रहा हूं।

क्या किसी को एक अच्छा ट्यूटोरियल या कुछ पता है?

धन्यवाद।

जवाबों:


17

mod_pythonमूल रूप से गैर-बनाए रखा जाता है - आपको देखना चाहिए mod_wsgi। पैकेज स्थापित करें libapache2-mod-wsgi, फिर sudo a2enmod wsgiइसे सक्षम करने के लिए जारी करें।

बस इसे चलाने के लिए एक त्वरित उदाहरण के रूप में, कुछ इस तरह से अपने में सामान /etc/apache2/sites-enabled/default:

WSGIScriptAlias /test /path/to/python/file.py

और फाइल में /path/to/python/file.py:

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    return "Hello World"

Apache2 को फिर से शुरू करने के बाद, कोई भी अनुरोध आपकी अजगर फ़ाइल में /testकॉल में बदल जाएगा application()

आगे पढ़ने के लिए, WSGI (WebServer Gateway Interface) देखें, जिस तरह से Python वेब-सर्वर के साथ एकीकृत होता है।

बोनस / अपडेट:

परीक्षण के लिए मानक पुस्तकालय में एक छोटा WSGI सर्वर है। यदि आप इसे अपनी फ़ाइल के निचले हिस्से में जोड़ते हैं, तो आप इसे परीक्षण उद्देश्यों के लिए किसी भी पुराने निष्पादन योग्य के रूप में चला सकते हैं, और फिर Apache को उत्पादन पर ले जा सकते हैं:

if __name__ == '__main__':
    from wsgiref.simple_server import make_server

    httpd = make_server('', 8080, application)
    print "Serving on http://localhost:8080"

    httpd.serve_forever()

मुझे अपाचे लॉग से त्रुटि के रूप में निम्नलिखित मिला है। जहाँ तक मैं बता सकता हूँ, यह सोचता है कि यह एक तार नहीं मिल रहा है।
विलेर

[सत मार ०५ १ Sat:१२:१४ २०११] [त्रुटि] [ग्राहक १२.0.०.0.0.1] mod_wsgi (pid = २ception४४): अपवाद WSGI स्क्रिप्ट '/var/www/file.py' को संसाधित करते हुए हुआ। [सत मार ०५ १ Sat:१२:१४ २०११] [त्रुटि] [मुवक्किल १२ ].०.०.१]] ट्रेसेबैक (सबसे हालिया कॉल अंतिम): [सत् मार ०५ १::०२:१४ २०११] [त्रुटि] [ग्राहक १२.0.०.०.१] फ़ाइल " /var/www/file.py ", पंक्ति 2, आवेदन में [Sat Mar 05 17:06:14 2011] [त्रुटि] [ग्राहक 127.0.0.1] start_response (200,] ('सामग्री-प्रकार', 'पाठ / सादे ')]) [Sat Mar 05 17:06:14 2011] [त्रुटि] [ग्राहक 127.0.0.1] TypeError: स्थिति के लिए अपेक्षित बाइट स्ट्रिंग ऑब्जेक्ट, प्रकार int का मान मिला
Vallery

आह। मेरी गलती। मैं मेरे लिए सभी मुश्किल सामान कर फ्रेमवर्क के लिए उपयोग किया जाता है;)। मैंने प्रति python.org/dev/peps/pep-0333 पर अपडेट किया 200है'200 OK'
मोर्टन सिबूहर

महान, वह काम करता है। अंतिम प्रश्न: मैं इसे html में कैसे प्रदर्शित कर सकता हूं? मेरा ब्राउज़र मार्कअप को अनदेखा करते हुए, प्लेटेक्स्ट में रिटर्न दिखाता है।
विल्लल

1
रुको, मिल गया: पाठ / सादे को पाठ / html में बदलें।
विर्लल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.