Tomcat安装配置

来源:互联网 发布:包拼车软件怎么样 编辑:程序博客网 时间:2024/06/06 18:14

最近在学Java Web,用到Tomcat。

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache服务器。目前Tomcat最新版本为9.0。

安装Tomcat前需要安装JDk或JRE(高版本的jre已经一起打包在JDK安装包里面,如果用1.3的话,还需要自己安装JRE。)。

tomcat仅仅依赖与JRE,因为作为JAVA产品,运行时有JAVA运行时环境就足够了,tamcat的JAVA类都已经编译好并封装了 。

Tomcat 5.5及以前的版本,我们都必须安装JDK,因为Tomcat Jasper需要使用JDK去编译jsp(翻译后的java文件),Tomcat 6的jasper在新的版本

已经做了重新的设计,也就是说,以后在生产机上安装tomcat的时候,不再需要去安装一个JDK了,只需要安装一个JRE就可以!

1、首先是Tomcat的获取和安装。

    获取当然得上Apache的官方网站下载,开源免费,而且带宽也足够。下载会很快。

  

    这是两种不同的下载,一个是普通安装版本,一个是解压安装版本。使用起来是一样的,只是在普通安装版本中有一些界面可提供对Tomcat的快捷设置,而且普通安装会将Tomcat作为系统服务进行注册。

(若Tomcat解压后,启动bin目录的startup.bat一闪而过这是没有搭建环境变量)

2、Tomcat的运行环境搭建。

    (解压版)安装(就是解压)完成后如下:

  

    Tomcat的启动是一个bat文件(Windows下),在bin目录下。双击即可。

    如果启动不成功,一般的情况是控制台出来一下立即消失,说明Tomcat没有找到Java的运行时环境。

      解决方法:

1)、Tomcat 7.0 的免安装版的配置(假如将Tomcat 解压到C:\Program Files目录,目录结构为:C:\ProgramFiles\apache-tomcat-7.0.11 

 

2)、添加环境变量:在 我的电脑->属性->高级->环境变量 

 

3)、新建系统变量, 

 变量名:TOMCAT_HOME  变量值:C:\Program Files\apache-tomcat-7.0.11 (Tomcat 解压到的目录)。 

 

 (如果只是让Tomcat作为服务器下面一步可有可无)

4)、Tomcat 7.0的管理员的配置,进入C:\Program Files\apache-tomcat-7.0.11(Tomcat目录)下的conf目录,编辑tomcat-users.xml,找到最后的: 

 

   <!-- 

 

         <rolerolename="tomcat"/> 

 

         <role rolename="role1"/>         <user username="tomcat"password="tomcat" roles="tomcat"/> 

 

         <user username="both"password="tomcat" roles="tomcat,role1"/> 

 

         <user username="role1"password="tomcat" roles="role1"/> 

 

   --> 

 

  在上面这段后面  添加上: 

 

       <rolerolename="manager-gui"/> 

 

       <rolerolename="admin-gui"/> 

 

       <user username="admin"password="admin888" roles="admin-gui"/> 

 

       <user username="tomcat"password="tomcat" roles="manager-gui"/> 

 

  到这应该知道我们添加的管理员的用户名和密码是多少了吧! 

 

5)、进入Tomcat 目录下的bin目录,双击startup.bat   启动Tomcat  在

 

命令行窗口会出来英文提示。 

 

6)、浏览器输入:http://localhost:8080  可以看到Tomcat的欢迎页面就(若无法显示,可能是端口被占用,更改即可

 

说明配置成功了,点击右上角上manager连接,输入上面配置的用户名和密码,

 

就可以进入管理页面。

注意:

若出现 解压缩完了运行tomcat7.exe屏幕一闪就没了 运行tomcat7w.exe弹出个筐
指定的服务并未以已安装的服务存在 Unable to open the Service 'tomcat6'

我安装了tomcat7,双击startup.bat可以正常启动Tomcat,也可以显示http://localhost:8080/,但是貌似安装版的不好用。卸载之后,也把tomcat的一些服务给卸载了。双击绿色版的tomcat7w.exe却出现"指定的服务并未以已安装的服务存在","Unable to open the

service"Tomcat6"。

后来找到了原因,原来是没有安装此项服务。具体安装方法:打开命令行提示符窗口

=> 进入Tomcat安装目录==> 进入bin目录下==> 输入:service.bat install 即可

 

情况:Tomcat解压后,启动bin目录的startup.bat正常,但是启动tomcat7.exe却启动不了,为什么?

tomcat7.exe与startup.bat的区别:

1)、这两个都可以启动tomcat,但tomcat7.exe必须安装了服务才能启动,而startup.bat不需要

2)、另外一个区别是它们启动所使用的Java环境配置是分开的

tomcat7.exe启动所使用JAVA配置与服务启动所使用的JAVA配置一样,都是通过tomcat7w.exe的JAVA面板配置(可以在创建服务前修改service.bat文件的JAVA_HOME变量来指定初始的JVM,该JAVA面板的所有配置项都是从service.bat文件初始化的。)

startup.bat启动所使用的JAVA配置可以通过修改catalina.bat 与setclasspath.bat 文件里的JAVA_HOME与JRE_HOME变量来指定,也可以直接在电脑的高级属性里面添加

  

3、Tomcat的目录结构介绍。

      bin目录存放一些启动运行Tomcat的可执行程序和相关内容。

      conf存放关于Tomcat服务器的全局配置。

      lib目录存放Tomcat运行或者站点运行所需的jar包,所有在此Tomcat上的站点共享这些jar

      wabapps目录是默认的站点根目录,可以更改。

      work目录用于在服务器运行时过度资源,简单来说,就是存储jsp、servlet翻译、编译后的结果。

      其他目录和文件暂时不做介绍。

4、Tomcat的默认行为。

      我们的浏览器请求如果到达了Tomcat,并且请求无误,一般Tomcat会以静态页面(即html文件)的形式给与响应,这是http服务器的默认行为。

      一个完整的资源请求包括:

      协议(如http)

      主机名(域名,如localhost、www.baidu.com

      端口号(http协议默认为80,所以我们一般向某个网站发起请求没有输入)

      站点

      资源位置

 

        如http://localhost:8080/ROOT/index.jsp

      那么在第二步时我们只输入了域名(或者主机名)就访问到了某个具体的页面,这是怎么回事呢?。

      首先,请求会通过一些途径到达请求的主机地址并被该服务器(指硬件,如我们的本机电脑)上的http服务器程序获得。这一步解释起来比较麻烦,我们不做赘述,我会在其他篇幅里介绍。

      比如我们输入http://localhost:8080到浏览器里。被Tomcat发现了。

 

      现在它拿到请求,先分析我们所请求的是什么资源。由于我们没有指定,它会到默认的站点去拿默认的页面给我们。

      现在我们把过程走一遍:

        服务器端:Tomcat监听着8080端口,时时注意是否有请求过来。

        客户端浏览器发出请求,到达了服务器端,由于端口的分配,请求最终被Tomcat得到。

Tomcat解析请求的资源,发现没有指定需要的是哪个站点下的哪个资源。

Tomcat在默认的站点下把默认的页面返回给客户端浏览器作为响应。

  

5、更改Tomcat默认配置。

     ①、修改Tomcat监听端口。

        我们都有过访问网站的经历。我们一般只输入了域名对吧,那么假设我们现在作为网络服务提供者,将要对外发布网站,我们怎么让用户只输入我们的域名就能看到我们为他/她准备的网页呢?

        首先我们需要将监听端口设置为80,道理很简单,用户不会在浏览器输入:8080来访问网站,浏览器也不会自动将请求发送到服务器的8080端口。

          %TOMCAT_HOME%(以下代指Tomcat的安装路径)下的conf目录下的server.xml文件中修改。

  

      这个文件里东西不少,其实大家不必在意。为什么呢?你把注释删除后再把整个xml看作一个对象,是吧,每个节点是一个属性,这个属性又可能是一个对象,它里面有属性……要这样去理解,或者直接认为是Tomcat的配置信息到也没错。

      这样,就不用输入:8080了。

    ②、修改默认站点。

      首先说,站点是具有特定结构的文件夹。这一点在Tomcat里表现得极为清晰。

      站点,在服务器上肯定是用文件夹(即目录结构)来存储和管理的。但是它和普通的文件夹又不同,Tomcat里,可用于作为站点的文件夹必须有如下特点:拥有一个名为WEB-INF的子文件夹,该子文件夹下必须有一个名为web.xml的文件,而且该xml文件必须受约束与特定的DTD。

      

      我们先配置或者说叫创建一个站点,再将其设置为默认站点。

        配置站点:创建文件夹,创建WEB-INF子文件夹,创建web.xml,完成。web.xml内容可以参考webapps/ROOT/WEB-INF/web.xml。

        设置为默认站点:

          这里需要分为两步执行。

            告诉Tomcat当请求哪个站点时(或者说在域名后面跟的是什么名字),你来找我。

            告诉Tomcat我在哪里。

  

上图已经将两步配置好了(实际上Tomcat默认加上了将空站点指向ROOT的代码),我们的d:/myweb:

            如果你的站点存放在webapps目录下,可以使用相对路径,比如,我们将d:/myweb整个拷到%TOMCAT_HOME%/webapps下,上图的docBase很明显就不需要加上d:/了。

  

            我在index.html里写了几句话,然后结果出来了:

  

 

    ③、修改默认页面。

      在上面,我们还算是中规中矩,按照常理出牌,谢了index.html。那么如果没有写呢?Tomcat会怎么做呢?

      请大家找到conf/web.xml。这个文件是对所有站点的共同属性做出了设置。比如大家看文件结尾处:

  

      这个叫做欢迎页面,当没有输入资源地址时,会由上至下地查找,获取页面,进行响应。

      很清楚了吧,改动它就可以,但是不建议在这里改,会是所有站点设置变化,你应该将其复制到你需要改动的站点下的web.xml,进行设置。

6、虚拟主机的配置。

      所谓虚拟主机,就是将一个或多个主机名(域名)和Tomcat所在的服务器进行绑定。由于一个IP可以和多个域名进行帮定,我们大可以将不同的域名指向服务器(指硬件)上的不同文件夹,造成一个服务器(或者一个IP)多个主机的“虚拟主机”效果。

      这个实现起来相当的简单。只需要在server.xml文件中新建Host节点,将其属性进行不同设置即可。

 1 #你的主机名(域名)1

 2<Hostname="localhost"  appBase="webapps"

 3           unpackWARs="true" autoDeploy="true"

 4           xmlValidation="false" xmlNamespaceAware="false">

 5</Host>

 6 #你的域名2

 7<Hostname="www.coderecord.org" appBase="主机空间地址"

 8       unpackWARs="true" autoDeploy="true"

 9       xmlValidation="false" xmlNamespaceAware="false"> 

10       #域名3可以和域名2共用一个主机空间

11        <Alias>coderecord.org</Alias>

12        <Contextpath="" docBase="站点地址" debug="1" reloadable="true" allowLinking="true"/>

13</Host>

 

0 0