加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

用Perl、Shell脚本基于Tomcat6开发cgi程序环境配置

发布时间:2020-12-15 23:52:06 所属栏目:大数据 来源:网络整理
导读:以本人tomcat-6.0.36,linux系统为例: 先切换到tomcat所在home目录,本机为"/usr/local/project/tomcat" 一、修改conf/web.xml 将CGI的serlvet配置与URL映射注释打开 servlet servlet-namecgi/servlet-name servlet-classorg.apache.catalina.servlets.CGIS

以本人tomcat-6.0.36,linux系统为例:

先切换到tomcat所在home目录,本机为"/usr/local/project/tomcat"

一、修改conf/web.xml

将CGI的serlvet配置与URL映射注释打开

    <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>
         <load-on-startup>5</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>cgi</servlet-name>
        <url-pattern>/cgi-bin/*</url-pattern>
    </servlet-mapping>

着重说下CGI servlet初始化参数之一( init-param)

executable:CGI程序解析器,默认为perl,如果为空,可以是任何安装在操作系统环境变量的脚本解析器,或是C/C++程序

建议该参数为空,tomcat会根据脚本类型去系统环境找合适的脚本解析器,以支持各类脚本运行,像上例就没有配置该参数

二、修改conf/context.xml

<Context privileged="true">

增加了privileged="true",不然tomcat启动会报错

三、建立测试web项目

在tomcat_home下的webapps目录下创建测试项目test,建议用eclipse工具创建好该web项目基本架构,切换到webapps/test/WEB-INF目录,创建新目录cgi

该目录就是用来存放cgi程序文件用的,对应上面的servlet初始化参数cgiPathPrefix的值WEB-INF/cgi

当然你也可以把你的cgi程序放在其它目录下,相应的修改初始化参数cgiPathPrefix的值。

四、创建shell脚本

切换到WEB-INF/cgi目录,新建hello.sh,内容如下

#!/bin/bash
echo -e "content-type:text/htmlnn" 
echo "hello world"

上面第一个echo命令中,增加了-e参数以开启反斜线转义,如果不加-e参数,可发现n并没有被当做换行符,只是作为普通字符输出

五、创建perl脚本

同样在cgi目录下,创建hello.pl,内容如下

#!/usr/bin/perl
print "Content-Type: text/htmlnn";
print "hello world";

在浏览器访问http://localhost/test/cgi-bin/hello.pl

http://localhost/test/cgi-bin/hello.sh可看见浏览器正常输出hello world

另说明下:

perl脚本也可以在windows上开发的,但如果最终服务器是linux的话,建议还是在linux上写perl脚本。毕竟windows上和linux下的perl脚本还是有差异的,比如路径分隔符,windows下

的是和/,而LINUX下的是/,还有其它差异吧,本人也没测过,希望有人在后面补充,我再加上去

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读