环境安装好(包括Python、Apache以及相关的组件),从CGI配置开始。
1.配置CGI环境
Apache支持CGI配置,下面就来详细说明配置的过程。
找到安装Apache的目录 /usr/local/apache2/conf ,并对 httpd.conf 配置文件进行修改,如下面的说明:
1.1.加载cgi模块
\#LoadModule cgid_module modules/mod_cgid.so
去掉注释:
LoadModule cgid_module modules/mod_cgid.so
1.2.设置cgi脚本文件路径
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
apache默认把"/usr/local/apache2/cgi-bin/"映射为/cgi-bin/,即当访问/cgi-bin/目录时,实际上访问的是"/usr/local/apache2/cgi-bin/"目录。
现将其设置为真实的项目目录,例如:
ScriptAlias /cgi-bin/ /home/Source_Code/cgi_for_py/
路径末尾一定要加/ ,否则apache是无法打到该路径下的文件的。
1.3.设置cgi路径的访问权限
AllowOverride none
Require all denied
将上面的内容全部修改为下面的内容:
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
/home/Source_Code/cgi_for_py/ 是项目路径
1.4.设置apache可解释python的cgi脚本文件
\#AddHandler cgi-script .cgi
修改为:
AddHandler cgi-script .cgi .py
加上.py后,就可以解释python的脚本文件了,如果你需要解释shell的脚本文件,可以添加.pl,其它的类似。
End,完成上面的4步,CGI配置已完成。
重启Apache或者重新加载Apache
2.测试CGI脚本文件
2.1.创建cgi脚本文件
在/home/Source_Code/cgi_for_py/目录下添加下面一个文件,如index.py:
#!/usr/bin/python
#coding:utf-8
print "Content-type:text/html"
print
print ''
print ''
print 'Hello '
print ''
print ''
print 'Hello Word! This is my first CGI program
'
print ''
print ''
注意:
打印协议头。
协议头为print的第一行和第二行。第一行为协议类型,第二行为协议结尾。
『print "字符串"』等价于『print("字符串")』
『print』等价于『print("")』
2.2.为cgi脚本分配执行权限
常见的没有权限的错误如下:
- End of script output before headers:index.py
- 500