jixuji 发表于 2013-7-12 09:06:23

tomcat开启cgi

要运行cgi,主要是改两个文件,一个是web.xml,一个是context.xml。1.web.xml先把下面这段的注释去掉,然后添加默认没有的段<servlet>      <servlet-name>cgi</servlet-name>      <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>      <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</param-value>      </init-param>      <init-param>      <param-name>executable</param-name>      <param-value>/usr/bin/perl</param-value>      </init-param>      <init-param>      <param-name>clientInputTimeout</param-name>      <param-value>100</param-value>      </init-param>      <load-on-startup>5</load-on-startup></servlet>
去掉下面的注释   <servlet-mapping>       <servlet-name>cgi</servlet-name>      <url-pattern>/cgi-bin/*</url-pattern></servlet-mapping>
参数的含义大家百度一下啦
下面详细解释以下内容      <init-param>      <param-name>executable</param-name>      <param-value>/usr/bin/perl</param-value>      </init-param>
参数executable,这个参数的默认值是支持perl的,也就是说是用来解释perl脚本的。如果你用c++来写cgi脚本,那么executable这个参数的value要设为 cmd /c,还支持python,php等等,cgi接口程序使用什么语言编写就使用什么参数,
2.context.xml
context.xml主要是改这么一行:<Context privileged="true">直接在context后加上privileged="true"就可以了,用于放行可执行文件
3.添加测试程序# cd/usr/local/tomcat6/webapps/ROOT/WEB-INF# mkdir cgi# cd cgi/# lstest1.cgi# cat test1.cgi#!/usr/bin/perlprint "Content-type:text/html\n\n";$now = localtime();print "<h1>It is$now</h1>";
使用浏览器打开相关网页http://10.58.1.96:8080/cgi-bin/test1.cgi看到图片上的内容表示设置成功

xuanhao 发表于 2013-7-13 03:36:32

天塌下来你顶着,我垫着!

hyzqb 发表于 2013-7-14 01:21:14

俺从不写措字,但俺写通假字!

q36988 发表于 2013-7-14 20:30:01

所有的男人生来平等,结婚的除外。

qazxsw1 发表于 2013-7-15 09:54:11

过来看看的

zhangxinba 发表于 2013-7-16 04:15:55

男人在结婚前觉得适合自己的女人很少,结婚后觉得适合自己的女人很多。

crespo09 发表于 2013-7-17 22:14:23

解释就是掩饰,掩饰就是编故事!
页: [1]
查看完整版本: tomcat开启cgi