Mac apache 配置python CGI
在mac上配置CGI:搞了两大天,遍寻个大论坛贴吧谷歌百度,教程倒是一大把,但都是这在之前几年的旧东西,现在的鬼技术蹭蹭蹭的升级,早已是面目全非,无奈只能自己摸索着尝试:
首先根据网上的教程打开你的 /private/etc/apache2/httpd.conf 配置文件, 这个文件里有三处 Directory : 在DocumentRoot下面的Directory不需要修改:
DocumentRoot "/Library/WebServer/Documents"
<Directory "/Library/WebServer/Documents">
需要修改其他两个<Directory>:
在第一个 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程序