刚看接受Python,对于他的配置什么的都不懂
今天写了个Python文件想跟php一样的执行以下,就看了下
Apache对CGI是支持的,想到Apache的时候,同时也想到了配置文件--httpd.conf
文件的目录在:
/etc/apache2/httpd.conf
找个合适的工具打开修改,vim也好文本编辑也好
(我喜欢用Sublime,因为颜色黑乎乎的 似乎高大上一样)
1、搜索:mod_cgi.so会找到下面这句,没有修改过的话,他是前面加#,被注释掉的,我们去掉注释
LoadModule cgi_module libexec/apache2/mod_cgi.so
2、搜索:AddHandler 会找打下面这句话,如果是注释掉的话,同样我们去掉注释,后面的.pl .py .sh是自己追加的
AddHandler cgi-script .cgi .pl .py .sh
3、修改CGI的工作目录(改到自己合适的位置)
我的内容跟网上说的一些有些不大一样,通过ScriptAlias搜索
我的原来的是这样的
#ScriptAliasMatch ^/cgi-bin/((?!(?i:webobjects)).*$) "/Library/WebServer/CGI-Executables/$1"
我就直接把他注释掉了,然后改成了下面这样
ScriptAlias /Documents/ /Library/WebServer/Documents/
因为我的Apache的工作目录就是在这个下面。
4、还有一个关于CGI的一个Directory
CGI-Executables">
AllowOverride None
Options None
Require all granted
如果只是把上面的路径改成Documents的路径,执行还是不行
正确的是下面这个
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
5、我们写个简单py文件放在Documents下面,名字存储为pyCGI.py
#!/usr/bin/python
# -*- coding: UTF-8 -*-
print "Content-type:text/html"
print # 空行,告诉服务器结束头部
print ''
print '
'print ''
print '
Hello Word - 我的第一个 CGI 程序!'print ''
print '
'print '
Hello Word! 我是来自菜鸟教程的第一CGI程序
'print ''
print ''
6、重启Apache
sudo /usr/sbin/apachectl restart
7、文件保存后修改 pyCGI.py,修改文件权限为 755:
chmod 755 pyCGI.py
7、执行
http://localhost/pyCGI.py
这样就执行成功了