Python apache 服务器中的 Cgi 脚本
Python Cgi script in apache server
我想我犯了一些愚蠢的错误,但我找不到它。
尝试在 apache 网络服务器上 运行 一个简单的 python cgi 脚本。我的密码是
#/usr/bin/env python
import cgitb
import cgi
cgitb.enable()
print 'Content-Type: text/html'
print
print '<html>'
print '<head><title>My first Python CGI app</title></head>'
print ' <body>'
print ' <p>something to try<p>'
print ' </body>'
print '</html>'
此代码在 /usr/lib/cgi-bin
我试图通过 localhost/cgi-bin/test.py 运行 它
但它显示 500 内部服务器错误。
我尝试更改其权限,但没有任何反应。
我可以从 /var/www/html/file_name.html 运行 html 文件
所以我尝试在 www/ 和 www/html/ (两者中)移动它并制作 cgi-bin 文件夹,没有它,没有解决任何问题。
我在 apache2.conf
中添加了这个
<Directory /usr/lib/cgi-bin>
Options +ExecCGI
AddHandler cgi-script .cgi .py
Order allow,deny
Allow from all
</Directory>
和 var/log/apache2/error.log 说
[2015 年 1 月 13 日星期二 22:54:11.422641] [cgid:error] [pid 10157:tid 140434248509184]
[client 127.0.0.1:44941] headers 之前的脚本输出结束:test.py
[1 月 14 日星期三 00:20:24.434351 2015] [cgid:error] [pid 26512:tid 140434573543296
(8)Exec format error: AH01241: exec of '/usr/lib/cgi-bin/test.py' failed
[1 月 14 日星期三 00:20:24.434778 2015] [cgid:error] [pid 10158:tid 140434456491776]
[client 127.0.0.1:45974] headers 之前的脚本输出结束:test.py
当您 运行 遇到 500 个错误时,一个提示是 运行 命令行上的脚本,它通常会告诉您拼写错误或其他解释器级别的问题。查看日志也可以报同样的错误,但是直接运行ning脚本通常更容易看出是怎么回事。
具体来说,至少有一个问题是这一行的错别字:
#/usr/bin/env python
应该是:
#!/usr/bin/env python
线索是 运行按原样显示脚本会显示错误,否则这些错误会通过 bash
解释器显示,当您希望通过环境的 运行 运行 =13=] 解释器.
我想我犯了一些愚蠢的错误,但我找不到它。 尝试在 apache 网络服务器上 运行 一个简单的 python cgi 脚本。我的密码是
#/usr/bin/env python
import cgitb
import cgi
cgitb.enable()
print 'Content-Type: text/html'
print
print '<html>'
print '<head><title>My first Python CGI app</title></head>'
print ' <body>'
print ' <p>something to try<p>'
print ' </body>'
print '</html>'
此代码在 /usr/lib/cgi-bin 我试图通过 localhost/cgi-bin/test.py 运行 它 但它显示 500 内部服务器错误。 我尝试更改其权限,但没有任何反应。 我可以从 /var/www/html/file_name.html 运行 html 文件 所以我尝试在 www/ 和 www/html/ (两者中)移动它并制作 cgi-bin 文件夹,没有它,没有解决任何问题。
我在 apache2.conf
中添加了这个 <Directory /usr/lib/cgi-bin>
Options +ExecCGI
AddHandler cgi-script .cgi .py
Order allow,deny
Allow from all
</Directory>
和 var/log/apache2/error.log 说
[2015 年 1 月 13 日星期二 22:54:11.422641] [cgid:error] [pid 10157:tid 140434248509184]
[client 127.0.0.1:44941] headers 之前的脚本输出结束:test.py
[1 月 14 日星期三 00:20:24.434351 2015] [cgid:error] [pid 26512:tid 140434573543296
(8)Exec format error: AH01241: exec of '/usr/lib/cgi-bin/test.py' failed
[1 月 14 日星期三 00:20:24.434778 2015] [cgid:error] [pid 10158:tid 140434456491776]
[client 127.0.0.1:45974] headers 之前的脚本输出结束:test.py
当您 运行 遇到 500 个错误时,一个提示是 运行 命令行上的脚本,它通常会告诉您拼写错误或其他解释器级别的问题。查看日志也可以报同样的错误,但是直接运行ning脚本通常更容易看出是怎么回事。
具体来说,至少有一个问题是这一行的错别字:
#/usr/bin/env python
应该是:
#!/usr/bin/env python
线索是 运行按原样显示脚本会显示错误,否则这些错误会通过 bash
解释器显示,当您希望通过环境的 运行 运行 =13=] 解释器.