मैं apache2 के साथ Ubuntu 16.04LTS पर काम कर रहा हूं। मैं एक साधारण सीजीआई पायथन लिपि "hello.py" निष्पादित करने पर काम कर रहा हूं। लेकिन फ़ाइल को निष्पादित करने के बजाय, यह डाउनलोड हो रही है। यदि मैं एक्सटेंशन को ".py" से ".cgi" में बदलता हूं, तो कोड मेरे ब्राउज़र में प्रदर्शित हो रहा है।

मेरी CGI स्क्रिप्ट /var/www/cgi-bin निर्देशिका में सहेजी गई है और यह नीचे लिखी गई है

import cgitb
cgitb.enable()    
print("Content-Type: text/html;charset=utf-8")

print "Content-type:text/html\r\n\r\n"
print '<html>'
print '<head>'
print '<title>Hello Word - First CGI Program</title>'
print '</head>'
print '<body>'
print '<h2>Hello Word! This is my first CGI program</h2>'
print '</body>'
print '</html>'

मैंने CGI ट्यूटोरियल का अनुसरण किया है। यह ट्यूटोरियल apache2 को कॉन्फ़िगर करने के लिए ScriptAlias ​​​​विधि का अनुसरण कर रहा है। ट्यूटोरियल के अनुसार, मैंने नीचे दिए गए कोड को apche2.conf फ़ाइल के अंत में जोड़ा है

#########     Adding capaility to run CGI-scripts #################
ServerName localhost
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
Options +ExecCGI
AddHandler cgi-script .cgi .pl .py

और मैंने अपनी conf-उपलब्ध/सेवा-cgi-bin.conf फ़ाइल को नीचे दिए गए फॉर्म में बदल दिया है:

<IfModule mod_alias.c>
        <IfModule mod_cgi.c>
                Define ENABLE_USR_LIB_CGI_BIN
        </IfModule>

        <IfModule mod_cgid.c>
                Define ENABLE_USR_LIB_CGI_BIN
        </IfModule>

        <IfDefine ENABLE_USR_LIB_CGI_BIN>
                ScriptAlias /cgi-bin/ /var/www/cgi-bin/
                <Directory "/var/www/cgi-bin">
                        AllowOverride None
                        Options +ExecCGI
                        #Require all granted
                </Directory>
        </IfDefine>
</IfModule>

अभी भी मेरी CGI स्क्रिप्ट चलने के बजाय डाउनलोड हो रही है। इस समस्या को हल कैसे करें ?

0
Muhzin 23 अक्टूबर 2018, 09:48

1 उत्तर

सबसे बढ़िया उत्तर

मैंने इसे ठीक कर दिया है। कॉन्फ़िगरेशन फ़ाइलों को संपादित करने के बाद, एक और कदम उठाना है। /etc/apache2/mods-available निर्देशिका में आप apache2 के स्थापित मॉड्यूल देख सकते हैं। cgi.load सीजीआई फाइलों के लिए मॉड्यूल है। यह डिफ़ॉल्ट रूप से सक्षम नहीं है। उन्हें सक्षम करने के लिए इन आदेशों का उपयोग करें।

$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/cgi.load

फिर सर्वर को पुनः लोड करें

$ sudo service apache2 reload
0
Muhzin 23 अक्टूबर 2018, 09:57