您的位置:首页 > 运维架构 > Tomcat

apache-tomcat-6.0.36配置基于Python的CGI脚本解析

2012-12-14 16:31 651 查看

系统环境

² 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),找到这一段被注释的节点(如下),如果你从没自己修改过,那应该是被注释的,你还需要添加一些参数。

<servlet>

<servlet-name>cgi</servlet-name>

<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

<init-param>

<param-name>clientinputTimeout</param-name>

<param-value>100</param-value>

</init-param>

<init-param>

<param-name>debug</param-name>

<param-value>0</param-value>

</init-param>

<init-param>

<param-name>passShellEnvironment</param-name>

<param-value>true</param-value>

</init-param>

<init-param>

<param-name>cgiPathPrefix</param-name>

<param-value>WEB-INF/cgi-bin</param-value>

</init-param>

<init-param>

<param-name>executable</param-name>

<param-value>D:/Python27/python.exe</param-value>

</init-param>

<load-on-startup>5</load-on-startup>

</servlet>


解释几个重要的参数:
“passShellEnvironment”: 与Python解析器解析CGI脚本有关,但是一定要配置好Python的环境变量;
“cgiPathPrefix”: 与Server能够访问的脚本目录有关,与第二步内容相对应;
“executable”: (这是我的安装路径)与Python解析器有关,没有解析器,Server怎么解析呢~
2. 找到第二段被注释的节点:

<servlet-mapping>

<servlet-name>cgi</servlet-name>

<url-pattern>/cgi-bin/*</url-pattern>

</servlet-mapping>


这里的<url-pattern>/cgi-bin/*</url-pattern>指定了浏览器访问的地址,与前面<param-value>WEB-INF/cgi-bin</param-value>相对应。
3. 配置权限:
打开context.xml(D:\apache-tomcat-6.0.36\conf),添加:privileged="true"

<Context privileged="true">

<!-- Default set of monitored resources -->

<WatchedResource>WEB-INF/web.xml</WatchedResource>

<!-- Uncomment this to disable session persistence across Tomcat restarts -->

<!--

<Manager pathname="" />

-->

<!-- Uncomment this to enable Comet connection tacking (provides events

on session expiration as well as webapp lifecycle) -->

<!--

<Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />

-->

</Context>


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

编写CGI脚本程序

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

#!D:\Python27\python.exe

print 'Content-type: text/plain'

print #打印空行,以结束首部

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~本文出自 “好寂寞先生” 博客,转载请与作者联系!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: