系统环境 ²  Apache-tomcat-6.0.36

²  Python2.7

²  JDK6

配置Apache-tomcat-6.0.3

1.      打开web.xml文件(D:\apache-tomcat-6.0.36\conf\web.xml),找到这一段被注释的节点(如下),如果你从没自己修改过,那应该是被注释的,你还需要添加一些参数。

 

  1. <servlet> 
  2.  
  3.         <servlet-name>cgi</servlet-name> 
  4.  
  5.         <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class> 
  6.  
  7.         <init-param> 
  8.  
  9.           <param-name>clientinputTimeout</param-name> 
  10.  
  11.           <param-value>100</param-value> 
  12.  
  13.         </init-param> 
  14.  
  15.                    <init-param> 
  16.  
  17.           <param-name>debug</param-name> 
  18.  
  19.           <param-value>0</param-value> 
  20.  
  21.         </init-param> 
  22.  
  23.         <init-param> 
  24.  
  25.           <param-name>passShellEnvironment</param-name> 
  26.  
  27.           <param-value>true</param-value> 
  28.  
  29.         </init-param> 
  30.  
  31.         <init-param> 
  32.  
  33.           <param-name>cgiPathPrefix</param-name> 
  34.  
  35.           <param-value>WEB-INF/cgi-bin</param-value> 
  36.  
  37.         </init-param> 
  38.  
  39.                    <init-param> 
  40.  
  41.           <param-name>executable</param-name> 
  42.  
  43.           <param-value>D:/Python27/python.exe</param-value> 
  44.  
  45.         </init-param> 
  46.  
  47.          <load-on-startup>5</load-on-startup> 
  48.  
  49.     </servlet> 

解释几个重要的参数:

“passShellEnvironment”: Python解析器解析CGI脚本有关,但是一定要配置好Python的环境变量;

“cgiPathPrefix”: Server能够访问的脚本目录有关,与第二步内容相对应;

“executable”: (这是我的安装路径)与Python解析器有关,没有解析器,Server怎么解析呢~

2.      找到第二段被注释的节点:

 

  1. <servlet-mapping> 
  2.  
  3.         <servlet-name>cgi</servlet-name> 
  4.  
  5.         <url-pattern>/cgi-bin/*</url-pattern> 
  6.  
  7. </servlet-mapping> 

这里的<url-pattern>/cgi-bin/*</url-pattern>指定了浏览器访问的地址,与前面<param-value>WEB-INF/cgi-bin</param-value>相对应。

3.      配置权限:

打开context.xmlD:\apache-tomcat-6.0.36\conf),添加:privileged="true"

 

  1. <Context privileged="true"> 
  2.  
  3.   
  4.  
  5.     <!-- Default set of monitored resources --> 
  6.  
  7.     <WatchedResource>WEB-INF/web.xml</WatchedResource> 
  8.  
  9.          
  10.  
  11.     <!-- Uncomment this to disable session persistence across Tomcat restarts --> 
  12.  
  13.     <!-- 
  14.  
  15.     <Manager pathname="" /> 
  16.  
  17.     --> 
  18.  
  19.   
  20.  
  21.     <!-- Uncomment this to enable Comet connection tacking (provides events 
  22.  
  23.          on session expiration as well as webapp lifecycle) --> 
  24.  
  25.     <!-- 
  26.  
  27.     <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" /> 
  28.  
  29.     --> 
  30.  
  31.   
  32.  
  33. </Context> 

关于Apache的配置暂时结束,后面还有~

编写CGI脚本程序

这是一个在Windows下运行的非常简单的CGI脚本:

 

  1. #!D:\Python27\python.exe 
  2.  
  3. print 'Content-type: text/plain' 
  4.  
  5. print #打印空行,以结束首部 
  6.  
  7.   
  8.  
  9. print 'Hello, CGI' 

文件名:cgitest.cgi

“#!D:\Python27\python.exe”是被指定必须存在的Pound Bang行;

“print 'Content-type: text/plain' ”: 这表明页面是普通的文本,如何页面为HTML,这一行就应该这么写;

配置自己的website

在这里,不使用任何第三方IDE,你也可以创建自己的website

1、  D盤根目錄下新建文件夾:”pannyweb”

2、  拷貝”WEB-INFO”文件(D:\apache-tomcat-6.0.36\webapps\ROOT)”pannyweb”文件夾中;

3、  修改”server.xml”文件(D:\apache-tomcat-6.0.36\conf),在”<Host></Host>”節點內最後添加:”<Context path=”/panny” docBase=”D:\pannyweb” />”,修改文件”web.xml”中的節點”<servlet></servlet>””<init-param></init-param>””<param-name>listings<param-name>”的值為”true”.

4、  現在可以通過外網的IP地址訪問了。如:”http://10.41.80.194:8080/panny/”

5、  D:\pannyweb\WEB-INF目录下创建文件夹命名为:”cgi-bin”,把前面创建好的cgitest.cgi拷贝进去。此时一切准备就绪了。

运行脚本

在浏览器里输入:http://127.0.0.1:8080/panny/cgi-bin/cgitest.cgi

You got it? Good job~