Mac apache 配置python CGI

在mac上配置CGI:搞了两大天,遍寻个大论坛贴吧谷歌百度,教程倒是一大把,但都是这在之前几年的旧东西,现在的鬼技术蹭蹭蹭的升级,早已是面目全非,无奈只能自己摸索着尝试:

首先根据网上的教程打开你的 /private/etc/apache2/httpd.conf 配置文件, 这个文件里有三处 Directory : 在DocumentRoot下面的Directory不需要修改:

DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">

需要修改其他两个&ltDirectory&gt:

在第一个 Directory中把内容改成如下:

<Directory "/Library/WebServer/CGI-Executables">
     AllowOverride None
     Options ExecCGI
     Order allow,deny
     Allow from all
</Directory>

在第二个 Directory中把内容改成如下:

<Directory "/Library/WebServer/CGI-Executables">
     Options All
</Directory>

因为看他们的配置教程都没有明确的说明具体改动的地方,导致我把两个Directory中的内容都改成了这个

AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all

结果最后运行起来死都不知道啥问题!

然后 再修改

#LoadModule cgi_module libexec/apache2/mod_cgi.so

前面有#注释,把#去掉就可以了

LoadModule cgi_module libexec/apache2/mod_cgi.so

然后修改ScriptAliasMatch,他也是被注释上的,直接把前面的#去掉就好:

ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"

接着修改#AddHandler cgi-script .cgi,也是直接把前面的#去掉,然后在后面加上 .py,以便让服务器能解析.py文件:

AddHandler cgi-script .cgi .py

完成以上配置后重启apache: sudo apachectl restart

最后在 /Library/WebServer/CGI-Executables 的文件夹里新建一个hello.py的文件: CGI-Executables 这个文件夹是CGI脚本的根目录,专门存放CGI脚本的地方

我们使用Python创建第一个CGI程序,文件名为hello.py,文件位于/var/www/cgi-bin目录中,内容如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

print "Content-type:text/html"
print                               # 空行,告诉服务器结束头部
print '<html>'
print '<head>'
print '<meta charset="utf-8">'
print '<title>Hello World - 我的第一个 CGI 程序!</title>'
print '</head>'
print '<body>'
print '<h2>Hello World! 我是来自菜鸟教程的第一CGI程序</h2>'
print '</body>'
print '</html>'

文件保存后修改 hello.py,修改文件权限为 755:

chmod 755 hello.py

以上程序在浏览器访问 http://localhost/cgi-bin/hello.py 显示结果如下:

Hello World! 我是来自菜鸟教程的第一CGI程序

results matching ""

    No results matching ""