原文链接:http://bantouyan.iteye.com/blog/1345405
要在Tomcat下运行用Perl脚本编写的CGI,需要修改Tomcat的两个配置文件,即web.xml和context.xml,这两个文件都位于Tomcat主目录下的conf文件夹下。(斑头雁原创: http://bantouyan.iteye.com)
在web.xml里面需要添加如下代码,以配置运行Perl CGI的Servlet。
- <servlet>
- <servlet-name>perlcgi</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>executable</param-name>
- <!--如果path环境内不包含perl的路径,这里应该用完整的perl路径-->
- <param-value>perl</param-value>
- </init-param>
- <init-param>
- <param-name>cgiPathPrefix</param-name>
- <param-value>perl</param-value><!--这里根据需要和个人喜好配置-->
- </init-param>
- <load-on-startup>5</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>perlcgi</servlet-name>
- <url-pattern>*.pl</url-pattern> <!-- 这里根据需要和个人喜好配置-->
- </servlet-mapping>
根据这些配置,所有以".pl"为后缀的请求都按CGI处理,对应的脚本位于对应请求路径下的perl这个文件夹里面(由参数CgiPathPrefix决定)。比如,当请求URL http://localhost/testcgi/perlcgi.pl时,Tomcat会在testcgi对应目录下的子文件夹perl内寻找并运行脚本perlcgi.pl。(斑头雁原创: http://bantouyan.iteye.com)
找到conf文件夹下的context.xml并打开,找到<Context>这一行,将它改为<Context privileged="true">,然后保存context.xml文件。(斑头雁原创: http://bantouyan.iteye.com)
修改完这两个文件后,重启Tomcat,就可以运行用Perl编写的CGI了。(斑