要在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了。(斑头雁原创: http://bantouyan.iteye.com)