如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
tomcat配置支持CGI要运行cgi,主要是改两个文件,一个是web.xml,一个是context.xml。一、tomcat下的cgi配置如下:1、tomcat5、6都需要修改a、在Tomcat的conf/web.xml文件中,把关于<servlet-name>CGI的那段的注释去掉。内容样式如下:<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>cgiPathPrefix</param-name><param-value>WEB-INF/cgi</param-value></init-param><init-param><param-name>executable</param-name><param-value>/bin/sh</param-value></init-param><load-on-startup>5</load-on-startup></servlet>cgiPathPrefix与cgi的存放目录有关系,excutable与cgi的语言有关系,Tomcat默认的cgi语言为perl,需要自已添加进去,它的值就是我们用来解释CGI脚本的程序。linux下shell:/bin/shperl:/bin/perlc/c++都行,类推b、在Tomcat的%CATALINA_BASE%/conf/web.xml文件中,把关于对CGI进行映射的那段的注释去掉。内容样式如下:<servlet-mapping><servlet-name>cgi</servlet-name><url-pattern>/cgi-bin/*</url-pattern></servlet-mapping>其中url-pattern就是将来我们访问CGI脚本的url地址模式。2、tomcat5比6多的配置a、把servlets-cgi.renametojar(在%CATALINA_HOME%/server/lib/目录下)改名为servlets-cgi.jar。b、配置权限在conf/context.xml修改下面这一行<Contextprivileged="true">不配置权限,将会出现java.lang.SecurityException:Servletofclassorg.apache.catalina.servlets.CGIServletisprivilegedandcannotbeloadedbythiswebapplication这一异常。完成上面几个步骤后,我们的Tomcat服务器就具有了运行CGI脚本的能力了。配置过程中遇到一个问题,就是静态网页可以正常显示,但点击其中的cgi连接时,cgi就被当成文件下载了,而不是由服务器解释执行。Apache会在html所在当前文件夹下寻找cgi文件。但默认的cgi前缀是WEB-INF/cgi-bin,路径不对,无法执行修改TOMCAT的主目录不修改之前,默认的是/usr/lib/tomcat6/webapps/ROOT/在/etc/tomcat6/下的server.xml<Host>字段中间加入:<Contextpath=""docBase="/var/www"debug="0"reloadable="true"crossContext="true"/>主目录就变成/var/www了PHP本身也支持CGI方式的使用,所以就自己动手试了一试(在Windows操作系统上):先按照附文的做法让Tomcat支持CGI,然后再改web.xml,在servlet-name为cgi的一段配置中加上:<init-param><param-name>executable</param-name><param-value>php</param-value></init-param>并把PHP安装路径加入Path,这样Tomcat就能运行到PHP.exe了。重启Tomcat后,在WEB-INF目录下新建一个cgi目录,把php文件放在这里,然后访问时用虚拟映射出来的cgi-bin目录来访问这些PHP文件。但是如果对PHP文件不加任何改动的话,可能会发现什么输出都没有。需要在PHP文件头部加一行,输出两个回车:echo"\n\n";原因不太清楚。可能在等待Content-type输入,或是Perl的