2010-02-11 12 views
14

मैं सीजीआई के माध्यम से अपाचे में रूबी का उपयोग करना चाहता हूं। मैं अपने विन्यास फाइल में निम्नलिखित हैं:अपाचे में रूबी सीजीआई सेट करना

DocumentRoot /home/ceriak/ruby 

<Directory /home/ceriak/ruby> 
    Options +ExecCGI 
    AddHandler cgi-script .rb 
</Directory> 

test.rb एक testfile /home/ceriak/ruby/ के नीचे रखा, #!/usr/bin/ruby पहली पंक्ति और दिए गए निष्पादन योग्य अनुमतियों पर शामिल है। फिर भी, जब मैं localhost/test.rb पर जाता हूं तो मुझे एक डाउनलोड विंडो मिलती है और स्रोत कोड प्राप्त कर सकता है।

दिलचस्प बात यह है कि, जब मैं /usr/lib/cgi-bin/ के तहत एक ही स्क्रिप्ट डालता हूं और localhost/cgi-bin/test.rb पर कॉल करता हूं तो यह माना जाता है।

किसी भी विचार (उबंटू 9.10। पर Apache2)?

+3

सर्वर फॉल्ट पर संबंधित है –

उत्तर

7

कुछ बातें की जांच करने के:

  • अपनी फ़ाइल निष्पादन योग्य है? आप chmod +x /path/to/file
  • पर जाकर इसे निष्पादन योग्य बना सकते हैं क्या आपने सही सामग्री-प्रकार आउटपुट किया था?
  • क्या आपके हेडर और आपके आउटपुट के बीच एक खाली नई लाइन है?
  • क्या आपने कॉन्फ़िगरेशन सेट करने के बाद अपाचे को पुनरारंभ किया था?

यदि आपने यह सब किया है, तो इसे ठीक काम करना चाहिए।

#!/usr/bin/env ruby 

puts <<EOS 
Content-type: text/html 

<html><body>hi</body></html> 
EOS 
1

मैं एक ही स्थिति के लिए में भाग गया और AddHandler के बाद निम्न पंक्ति जोड़कर इसे ठीक करने में सक्षम था:

Require all granted 
1

पुनः जाँच लें कि mod_cgi है मैं अपने test.rb फ़ाइल के रूप में इस राशि सक्षम; डिफ़ॉल्ट Yosemite http.conf ने इसे अक्षम कर दिया है।

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