मुझे हाल ही में पता चला है कि सीजीआई स्क्रिप्ट को किसी भी भाषा में लिखा जा सकता है जो stdout पर प्रिंट कर सकता है। मैं अपने साझा मेजबान पर एक छोटे से छल cgi स्क्रिप्ट है कि स्थापित अपने स्थानीय अपाचे पर काम करता है लिखा है, लेकिन नहीं:गुइल योजना और सीजीआई?
#!/usr/local/bin/guile -s
!#
(display "Content-Type: text/html")
(newline)
(newline)
(display "hi")
(newline)
यह वह जगह है उत्पादन, जब मैं ssh पर मेरे मेजबान पर एक खोल से स्क्रिप्ट चलाने:
$ ./scheme.cgi
Content-Type: text/html
hi
तो, जाहिर है कि मेरे होस्ट ने गुइल स्थापित किया है। हालांकि, जब मैं ब्राउज़र में इस फ़ाइल तक पहुंचने का प्रयास करता हूं, तो मुझे "500 आंतरिक सर्वर त्रुटि" मिलती है। जब मेरी त्रुटि लॉग को देखते हुए, मुझे लगता है कि मैं खूंखार "स्क्रिप्ट हेडर के समय से पहले अंत" हो रही है त्रुटि:
[server.com] [Tue Aug 17 00:54:19 2010] [error] [client xx.xx.xx.xxx] (2)No such file or directory:
exec of '/home/www/vhosts/jcw.geekisp.com/cgi-bin/scheme.cgi' failed
[server.com] [Tue Aug 17 00:54:19 2010] [error] [client xx.xx.xx.xxx] Premature end
of script headers: scheme.cgi
क्योंकि मैं एक साझा मेजबान पर हूँ, mod_lisp या छल के FastCGI कार्यान्वयन का उपयोग सवाल से बाहर हैं । कहा जा रहा है, यहां क्या मुद्दा हो सकता है? इसी तरह की सीजीआई स्क्रिप्ट्स जिन्हें मैंने पाइथन, पर्ल, रूबी, और एस में बिना किसी त्रुटि के सर्वर पर लिखा है। मुझे लगता है कि होस्ट पर 1.8.7 गुमराह स्थापित है, लेकिन मेरी स्थानीय मशीन नवीनतम संस्करण पर है।
मैं समझता हूं कि यह एक अविश्वसनीय रूप से विशिष्ट सवाल है, किसी भी मदद की सराहना की जाएगी!
उत्कृष्ट विचार, धन्यवाद! – jcw
मैंने हाल ही में सीजीआई कार्यक्रम चलाने के लिए अपने मेजबान पर काम करने के लिए इस विधि का उपयोग किया। मैंने LD_LIBRARY_PATH और GUILE_LOAD_PATH को सही तरीके से स्थापित करने के लिए एक छोटी शेल स्क्रिप्ट (जिसे CGI प्रोग्राम चलाया) बनाया है। – gcbenison