Python 正在下载 CGI 脚本而不是 运行
Python CGI script is downloading instead of running
我正在使用 apache2 开发 Ubuntu 16.04LTS。我正在执行一个简单的 CGI python 脚本 "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 tutorial。本教程按照 ScriptAlias 方法配置 apache2。根据教程,我已将以下代码添加到 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-available/serve-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 脚本仍在下载,而不是 运行。如何解决这个问题?
我已经修好了。
编辑配置文件后,再往do.In /etc/apache2/mods-available
目录下就可以看到apache2安装的模块了。 cgi.load
是CGI文件的模块。默认情况下不启用。使用这些命令启用它们。
$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/cgi.load
然后重新加载服务器
$ sudo service apache2 reload
我正在使用 apache2 开发 Ubuntu 16.04LTS。我正在执行一个简单的 CGI python 脚本 "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 tutorial。本教程按照 ScriptAlias 方法配置 apache2。根据教程,我已将以下代码添加到 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-available/serve-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 脚本仍在下载,而不是 运行。如何解决这个问题?
我已经修好了。
编辑配置文件后,再往do.In /etc/apache2/mods-available
目录下就可以看到apache2安装的模块了。 cgi.load
是CGI文件的模块。默认情况下不启用。使用这些命令启用它们。
$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/cgi.load
然后重新加载服务器
$ sudo service apache2 reload