2012-05-01 32 views
21

जब मैं अपने खोल में python -m SimpleHTTPServer 8000 या python -m CGIHTTPServer 8000 चलाता हूं तो मैं अपनी वर्तमान निर्देशिका की सामग्री को इंटरनेट पर होस्ट कर रहा हूं।पाइथन सीजीआई स्क्रिप्ट को 'पायथन -एम सरल एचटीटीपीएस सर्वर 8000` या' पायथन -एम CGIHTTPServer 8000` के साथ होस्ट करने के लिए कैसे करें?

मैं सही ढंग से जब मैं 192.xxx.x.xx:8000/cgi_script.py

#!/usr/bin/env python 
print "Content-Type: text/html" 
print 
print """\ 
<html> 
<body> 
<h2>Hello World!</h2> 
</body> 
</html> 
""" 

ब्राउज़ लेकिन इस स्क्रिप्ट सचमुच प्रदर्शित किया जाता है और न केवल "नमस्ते दुनिया कमांड लाइन में उपरोक्त आदेश का उपयोग कर निम्नलिखित cgi_script.py काम करने के लिए चाहते हैं! " अंश। बीटीडब्ल्यू मैंने cgi_script.py के साथ फ़ाइल अनुमतियों को 755 में बदल दिया है, साथ ही फ़ोल्डर जिसे मैं इसे होस्ट कर रहा हूं।

+0

मैक या लिनक्स पर इसे आज़माने वाले लोगों के लिए, सुनिश्चित करें कि फ़ाइल को निष्पादित करने की अनुमति हो। दूसरे शब्दों में: 'chmod + x cgi-bin/cgi_script.py' – greggles

उत्तर

32

python -m CGIHTTPServer 8000 के साथ प्रयास करें।

ध्यान दें कि चलाने योग्य होने के लिए आपको स्क्रिप्ट को cgi-bin या htbin निर्देशिका में स्थानांतरित करना होगा।

+0

दुर्भाग्य से यह कुछ भी नहीं बदलेगा। (मुझे समझ में नहीं आता क्यों नहीं)। – Bentley4

+0

@ बेंटले 4 - कृपया CGI निर्देशिका के बारे में अद्यतन उत्तर देखें। – rodrigo

+0

मैंने निर्देशिका के साथ cgi_bin, htbin और यहां तक ​​कि cgi-bin नाम की कोशिश की। कोई भी उचित काम नहीं किया। – Bentley4

5

SO मुझे टिप्पणी करने की अनुमति नहीं देता है इसलिए मैं इसे एक अलग उत्तर के रूप में जोड़ रहा हूं, रॉड्रिगो के अलावा।

आप अन्य पैरामीटर cgi_directories का उपयोग कर सकते हैं जो ['/cgi-bin', '/htbin'] पर डिफ़ॉल्ट है। अधिक जानकारी here

0

जब मैं इस मुद्दे में भाग गया तो मैंने पाया कि python -m CGIHTTPServer 8000 कमांड चलाने पर आप किस निर्देशिका में हैं, इसके परिणामस्वरूप विभिन्न परिणाम मिलते हैं। सीजीआई-बिन निर्देशिका में कमांड चलाने का प्रयास करते समय ब्राउज़र ने कच्चे स्क्रिप्ट कोड को वापस करना जारी रखा। एक बार मैंने एक स्तर ऊंचा किया और python -m CGIHTTPServer 8000 आदेश फिर से चलाया मेरी स्क्रिप्ट निष्पादित करना शुरू कर दिया।

0

@ बेंटले 4 -ifyू अभी भी करने में सक्षम नहीं हैं, सीजीआई आयात करने का प्रयास करें।

# सी: \ Python34 \ python.exe -u आयात cgi प्रिंट ("सामग्री प्रकार: पाठ/html")

HTH

0

python3 में कमांड लाइन बस है

python -http.server --cgi 8000 
+1

और हाँ: स्क्रिप्ट को '/ cgi-bin' में रहने की आवश्यकता है – AchimG

+3

आपका आदेश त्रुटि के साथ विफल रहता है 'अज्ञात विकल्प: -पी' जो समझ में आता है क्योंकि आप 'http.server' दे रहे हैं जैसे कि यह छोटा हो विकल्प। यह इस तरह काम नहीं करता है। इसके बजाय यह 'python -m http.server - cgi 8000' होना चाहिए – josch

0

मेरे लिए यह काम करते हैं, cgi-bin साथ python -m CGIHTTPServer 8000 आदेश एक ही मेनू स्तर चलाते हैं, और cgi-bin folder.In ब्राउज़र प्रकार में cgi_script.py ले जाने http://localhost:8000/cgi-bin/cgi_script.py