设为首页 收藏本站
查看: 796|回复: 0

[经验分享] Tomcat服务器下如何配置并使用可执行CGI,扩屏名是exe的。

[复制链接]

尚未签到

发表于 2017-2-9 09:22:45 | 显示全部楼层 |阅读模式
  初来贵宝地,提个问题露个脸。这个问题让我困惑了很久了。我知道大家一般很少会配它,但我知道Tomcat肯定能用可执行CGI的。因为一样特殊原因,我现在只能用Tomcat来作Web服务器,所以也没得选择,望众Tomcat高手能够帮我解决,指引方向。 问题点数:100、回复次数:20Top
<iframe scrolling="no" frameborder="0" src="http://topic.csdn.net/Include/Board.htm?Tags="></iframe>
1 楼kaymo(  。。。  )回复于 2005-05-16 14:24:58 得分 1
  没用tomcat做过这样的事,怎么,现在还有这样的需求?  
  cgi程序要用tomcat来跑?晕晕Top
2 楼querlang(编程浪子)回复于 2005-05-16 14:50:38 得分 1
  用java调用如何Top
3 楼jFresH_MaN(十一月的萧邦-夜曲)回复于 2005-05-16 14:55:01 得分 1
  这个需要用apache和tomcat整合了。Top
4 楼pigo()回复于 2005-05-16 15:26:11 得分 1
  

  把  conf/web.xml关于cgi那段  的注释取消掉,然后配置一下就ok了。  

  找tomcat官方文档看吧。  

Top
5 楼fanyufanyu(反语)回复于 2005-05-16 16:21:15 得分 0
  我只是用Tomcat来调试程序用的,最终完成后还是要在别的服务器上跑的。Apache和IIS因为某些原因,并不能使用,我也是没办法才到找Tomcat的,也是听同事说挺好才用的。我本人也不怎么会用Tomcat的。如果分不够还可以再加的。  
  楼上朋友的方法我试了,还是不好使呀,只能下载不能执行。Top
6 楼fanyufanyu(反语)回复于 2005-05-17 13:00:54 得分 0
  难道大家以前就没“玩过”可执行CGI这东西吗?我现在很需要一个Web服务器。我觉得对于熟悉Tomcat的人来说,这个应该不算是什么问题的。顺便说一下,我的Tomcat版本是4.1。Top
7 楼ytnice()回复于 2005-05-17 14:01:47 得分 1
  不会,帮你顶Top
8 楼pigo()回复于 2005-05-17 14:38:51 得分 40
  http://jakarta.apache.org/tomcat/tomcat-5.0-doc/cgi-howto.html  

  我配置Tomcat支持pl就是这样做的,但是没有试过exe文件,因为我没有exe文件测试。  

  8.在Tomcat中使用CGI脚本  
  Tomcat主要是作为Servlet/JSP容器,但它也有许多传统web服务器的性能。支持通用网关接口(Common  Gateway  Interface,即CGI)就是其中之一,CGI提供一组方法在响应浏览器请求时运行一些扩展程序。CGI之所以被称为通用,是因为它能在大多数程序 或脚本中被调用,包括:Perl,Python,awk,Unix  shell  scripting等,甚至包括Java。当然,你大概不会把一个Java应用程序当作CGI来运行,毕竟这样太过原始。一般而言,开发Servlet总 要比CGI具有更好的效率,因为当用户点击一个链接或一个按钮时,你不需要从操作系统层开始进行处理。  

  Tomcat包括一个可选的CGI  Servlet,允许你运行遗留下来的CGI脚本。  

  为了使Tomcat能够运行CGI,你必须做如下几件事:  
  1.  把servlets-cgi.renametojar  (在CATALINA_HOME/server/lib/目录下)改名为servlets-cgi.jar。处理CGI的servlet应该位于Tomcat的CLASSPATH下。  
  2.  在Tomcat的CATALINA_BASE/conf/web.xml  文件中,把关于<servlet-name>  CGI的那段的注释去掉(默认情况下,该段位于第241行)。  
  3.  同样,在Tomcat的CATALINA_BASE/conf/web.xml文件中,把关于对CGI进行映射的那段的注释去掉(默认情况下,该段位于第299行)。注意,这段内容指定了HTML链接到CGI脚本的访问方式。  
  4.  你可以把CGI脚本放置在WEB-INF/cgi  目录下(注意,WEB-INF是一个安全的地方,你可以把一些不想被用户看见或基于安全考虑不想暴露的文件放在此处),或者你也可以把CGI脚本放置在 context下的其他目录下,并为CGI  Servlet调整cgiPathPrefix初始化参数。这就指定的CGI  Servlet的实际位置,且不能与上一步指定的URL重名。  
  5.  重新启动Tomcat,你的CGI就可以运行了。  

  在Tomcat中,CGI程序缺省放置在WEB-INF/cgi目录下,正如前面所提示的那样,WEB-INF目录受保护的,通过客户端的浏览器无法窥探 到其中内容,所以对于放置含有密码或其他敏感信息的CGI脚本而言,这是一个非常好的地方。为了兼容其他服务器,尽管你也可以把CGI脚本保存在传统的 /cgi-bin目录,但要知道,在这些目录中的文件有可能被网上好奇的冲浪者看到。另外,在Unix中,请确定运行Tomcat的用户有执行CGI脚本 的权限。  
Top
9 楼fanyufanyu(反语)回复于 2005-05-17 15:29:41 得分 0
  这个东西怎么配也不好使,郁闷呀,谁能告诉我它的访问URL该如何输入呀  
  http;//127.0.0.1:8080/后面该写的路径和文件是什么呀。  
  谁要有兴趣可以把我的可执行CGI发到他信箱里自已回去测测,我是弄不好了。  
  等试好后在发贴子告诉大家的解决办法。我在IIS下根本不需要配置,在Apache下只需要加几行信息来说明路径、文件名什么的就可以了。在Tomcat下怎么这么费劲呀。Top
10 楼fanyufanyu(反语)回复于 2005-05-17 17:27:10 得分 0
  大家努力呀,补充一下,我把我的CGI放到我的网络硬盘上有,有兴趣的朋友可以去下来试试。  
  功能最简单不无了,是调试版的程序,比较大一些。网址是http://fanyufanyu.vdisk.cn  
  根目录下有一个BCBCGI.exe的就是。Top
11 楼pigo()回复于 2005-05-17 19:30:00 得分 40
  
  呵呵,配置ok了。  

  还需要设置一个参数executable。  

  这个参数的默认值是支持perl的。  



  配置如下:  

  <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>cgiPathPrefix</param-name>  
  <param-value>WEB-INF/cgi-bin</param-value>  
  </init-param>  
                  <init-param>  
                          <param-name>executable</param-name>  
                          <param-value>cmd  /c  </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>  

  exe文件存放的路径在  

  D:\jakarta-tomcat-5.5.8\webapps\mywebapp\WEB-INF\cgi-bin  

  访问地址是:  

  http://localhost:8080/mywebapp/cgi-bin/BCBCGI.exe  

  楼主给分吧。  


  遇到问题多搜索资料吧,我也是顺手搜索了几下就搞定了。  

Top
12 楼fanyufanyu(反语)回复于 2005-05-18 08:59:01 得分 0
  楼上朋友的方法很不错,在我的机器上可以得到正确的结果。说明基本配置成功。  
  但当输入http://localhost:8080/mywebapp/cgi-bin/BCBCGI.exe/index.asp  
  却出错了,没有结果,实际的结果和你看到的没有路径信息时的结果是一样的。/index.asp是CGI的路径信息,并不是文件,CGI是根据不同的路径 来选择执行不同的代码的。所以这样的CGI虽然能但,但没有意义的。还是希望有空楼上的朋友能在接在厉帮我把这个东西弄好,谢谢你了。一定会给你加很多分 的。Top
13 楼pigo()回复于 2005-05-18 09:34:00 得分 15
  关于cgi,我只了解一点点运行原理,并没有写过相关的程序。刚才再试了一下,在我的配置中。http://localhost:8080/awstats/cgi-bin/cc.exe/index.asp  
  http://localhost:8080/awstats/cgi-bin/cc.exe/index.aspsddsds  
  http://localhost:8080/awstats/cgi-bin/cc.exe/dsdssdsd/dfdfindex.aspsddsds  
  这样的路径最终得到的效果和http://localhost:8080/awstats/cgi-bin/cc.exe所看到的结果是一样的。  
  对于这个cgi的调用,可以简单的看作是命令行执行  cmd  /c  "cc.exe"  
  那么执行cmd  /c  "cc.exe/index.asp"和  cmd  /c  "cc.exe/index.aspsddsds"和cmd  /c  "cc.exe"  在命令行下你都会看到同样的输出结果。  

  如果你是要看到不同的结果,这个应该是在你的cgi程序中自己写代码进行处理(好像是获取命令行传入的参数信息,然后进行相应处理,没有写过cgi,所以这只是我的大致猜测),而不是tomcat来处理的。  

Top
14 楼fanyufanyu(反语)回复于 2005-05-18 09:54:28 得分 0
  我的结果是不一样。  
  http://localhost:8080/mywebapp/cgi-bin/BCBCGI.exe  能够得到正常结果  
  http://localhost:8080/mywebapp/cgi-bin/BCBCGI.exe/index.asp  
  得到的是Tomcat的错误信息  
  我把它贴出来如下:  
  HTTP  Status  404  -   

  --------------------------------------------------------------------------------  

  type  Status  report  

  message   

  description  The  requested  resource  ()  is  not  available.  


  --------------------------------------------------------------------------------  

  Apache  Tomcat/4.1.30  

  这个东西是不是和Tomcat的版本有关呀。  
  ----------------------------------------------------------------  
  原贴内容:  
  关于cgi,我只了解一点点运行原理,并没有写过相关的程序。刚才再试了一下,在我的配置中。http://localhost:8080/awstats/cgi-bin/cc.exe/index.asp  
  http://localhost:8080/awstats/cgi-bin/cc.exe/index.aspsddsds  
  http://localhost:8080/awstats/cgi-bin/cc.exe/dsdssdsd/dfdfindex.aspsddsds  
  这样的路径最终得到的效果和http://localhost:8080/awstats/cgi-bin/cc.exe所看到的结果是一样的。  
  对于这个cgi的调用,可以简单的看作是命令行执行  cmd  /c  "cc.exe"  
  那么执行cmd  /c  "cc.exe/index.asp"和  cmd  /c  "cc.exe/index.aspsddsds"和cmd  /c  "cc.exe"  在命令行下你都会看到同样的输出结果。  

  如果你是要看到不同的结果,这个应该是在你的cgi程序中自己写代码进行处理,而不是tomcat来处理的。  
Top
15 楼pigo()回复于 2005-05-18 10:00:01 得分 0
  

  估计和tomcat有关。  

  我现在用的是Tomcat5.5.9.  

  如果没有特殊限制的话。建议用最新版本的tomcat,里面增加了很多有用的功能。  


Top
16 楼fanyufanyu(反语)回复于 2005-05-18 10:07:08 得分 0
  你的Tomcat5.5.9是exe的安装程序的吗?要是Zip的话我可不会安装呀。能发给我一份吗?我的大信箱是fanyufanyu@126.comTop
17 楼fanyufanyu(反语)回复于 2005-05-18 10:08:51 得分 0
  等会儿就结贴。Top
18 楼pigo()回复于 2005-05-18 10:12:01 得分 0
  
  晕,zip的不管在哪个操作系统,都解压就可以用了。  

  windows下,解压之后运行bin/下的startup.bat  
  其它的操作系统是运行startup.sh  

  http://www.google.com/search?q=tomcat+5.5.x&hl=zh-CN&lr=lang_zh-CN&ie=gb2312  

  仔细看google的前几条记录吧。  





Top
19 楼fanyufanyu(反语)回复于 2005-05-18 10:19:05 得分 0
  哦,这么简单呀,我以后很难的。能发给我吗?也让我爽爽,对了,我刚才又回顾了一下  
  mywebapp目录是你自已建的吗?我的系统里没有这个文件夹,我是把ROOT文件夹考过来以后改名得到的,能不能是这个原因呀。Top
20 楼pigo()回复于 2005-05-18 10:49:16 得分 0

  Tomcat5.5.9的下载:  

  http://www.apache.org/dist/jakarta/tomcat-5/v5.5.9/src/jakarta-tomcat-5.5.9-src.zip  
  http://www.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9.zip  
  http://www.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9-fulldocs.tar.gz  
  http://www.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9-admin.zip  
  http://www.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/jakarta-tomcat-5.5.9-compat.zip  


  关于各个文件的介绍请看:  

  http://www.apache.org/dist/jakarta/tomcat-5/v5.5.9/bin/  下面都有说明。  


  mywebapp当然是我自己建立的了,与文件夹名字没有特别的关系,  

  关于这些,你可以去了解一下servlet规范和Tomcat的webapp部署机制。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-339551-1-1.html 上篇帖子: 钱多:bea/ibm application server钱少:jboss or tomcat (jsp/servlet) 下篇帖子: 如何让tomcat输入http://localhost 直接进入我指定项目的文件夹里面?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表