Apache-Tomcat-8.0.9配置基于Python的CGI脚本解析
2016-05-01 09:32
615 查看
系统环境
Apache-tomcat-8.0.9
Python2.6
JDK1.8
Eclipse 4.5.0
在Eclipse中新建Dynamic Web project,myweb
1、在WEB-INF下新建文件夹cgi-bin
2、在cgi-bin文件夹下新建脚本文件cgitest.cgi,如下:
#!C:\Python26\python.exe
print 'Content-type: text/plain'
print
def hw(n):
if n==1:
return 1
else:
return 2*n
print hw(3);
print 'Hello, CGI'
“#!C:\Python26\python.exe”是被指定必须存在的Pound Bang行;
“print 'Content-type: text/plain' ”: 这表明页面是普通的文本,如何页面为HTML,这一行就应该这么写;
3、在Eclipse中新建Server指向Tomcat,修改web.xml和context.xml文件
a. 打开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>C:/Python26/python.exe</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
解释几个重要的参数:
“passShellEnvironment”: 与Python解析器解析CGI脚本有关,但是一定要配置好Python的环境变量;
“cgiPathPrefix”: 与Server能够访问的脚本目录有关,与第二步内容相对应;
“executable”: (这是我的安装路径)与Python解析器有关,没有解析器,Server怎么解析呢~
b. 找到第二段被注释的节点:
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
这里的/cgi-bin/*指定了浏览器访问的地址,与前面
WEB-INF/cgi-bin相对应。
c. 配置权限:
打开context.xml,添加: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>
4、运行脚本
在浏览器里输入:http://localhost:8080/myweb/cgi-bin/cgitest.cgi
Apache-tomcat-8.0.9
Python2.6
JDK1.8
Eclipse 4.5.0
在Eclipse中新建Dynamic Web project,myweb
1、在WEB-INF下新建文件夹cgi-bin
2、在cgi-bin文件夹下新建脚本文件cgitest.cgi,如下:
#!C:\Python26\python.exe
print 'Content-type: text/plain'
def hw(n):
if n==1:
return 1
else:
return 2*n
print hw(3);
print 'Hello, CGI'
“#!C:\Python26\python.exe”是被指定必须存在的Pound Bang行;
“print 'Content-type: text/plain' ”: 这表明页面是普通的文本,如何页面为HTML,这一行就应该这么写;
3、在Eclipse中新建Server指向Tomcat,修改web.xml和context.xml文件
a. 打开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>C:/Python26/python.exe</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
解释几个重要的参数:
“passShellEnvironment”: 与Python解析器解析CGI脚本有关,但是一定要配置好Python的环境变量;
“cgiPathPrefix”: 与Server能够访问的脚本目录有关,与第二步内容相对应;
“executable”: (这是我的安装路径)与Python解析器有关,没有解析器,Server怎么解析呢~
b. 找到第二段被注释的节点:
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
这里的/cgi-bin/*指定了浏览器访问的地址,与前面
WEB-INF/cgi-bin相对应。
c. 配置权限:
打开context.xml,添加: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>
4、运行脚本
在浏览器里输入:http://localhost:8080/myweb/cgi-bin/cgitest.cgi
相关文章推荐
- tomcat 部署到服务器提示找到到struts标签
- 创建银行账户管理系统项目及Tomcat服务器搭建
- IntelliJ IDEA Tomcat配置 详解
- Java Tomcat SSL 服务端/客户端双向认证
- tomcat 启动异常跳转classloader.class
- 一个服务器跑多个tomcat的设置
- eclipse中tomcat老是404出错
- Java web之Tomcat作为Servlet容器的基本功能
- Linux 安装Tomcat
- isapi_redirect.exe安装失败处理
- Jetty 的工作原理以及与 Tomcat 的比较
- myeclipse用maven搭建web项目后tomcat启动报找不到jar包解决办法
- tomcat闪退,手动无法启动,针对tomcat6,7,8
- tomcat log日志详解
- IntelliJ IDEA Tomcat配置 详解
- mac下Tomcat安装及启动,浏览器却打不开解决方案
- 启动Tomcat 失败(Unable to start cluster)及解决方法
- Linux下整合Apache和Tomcat
- linux下apache+tomcat配置
- 关于最近项目中配置tomcat7.0.6的多个虚拟目录路径的解决方法的记录