Python+Apache+CGI

环境安装好(包括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

你可能感兴趣的:(Python+Apache+CGI)