汤姆猫的安装、使用。

先要提供jdk-7u9-linux-x64.rpm(如以上版本)
安装jdk(java需要用到的编译开发工具)
[root@libincla ~]# rpm -vih jdk-7u9-linux-x64.rpm
Preparing...########################################### [100%]
1:jdk########################################### [100%]
Unpacking JAR files...
rt.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/rt.pack
jsse.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/jsse.pack
charsets.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/charsets.pack
tools.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/lib/tools.pack
localedata.jar...
Error: Could not open input file: /usr/java/jdk1.7.0_09/jre/lib/ext/localedata.pack

安装完后会在/usr/java里出现

将JDK提供一些功能编辑到/etc/profile.d/java.sh,以便方便使用。

source一下配置文件,使用命令 java -version查看java虚拟机的信息。
[root@libincla ~]# java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)

下一步,安装tomcat,把tomcat安装到/usr/local目录下。
[root@libincla ~]# tar xfapache-tomcat-7.0.42.tar.gz-C/usr/local
它会生成一个叫apache-tomcat-7.0.42的目录,为了方便以后的定义配置简便快捷,可以创建一个链接叫tomcat。
[root@libincla local ]# ln -sv apache-tomcat-7.0.42tomcat
`tomcat' -> `apache-tomcat-7.0.42'

默认tomcat要部署的应用程序的目录为
[root@libincla webapps]# pwd
/usr/local/tomcat/webapps
[root@libincla webapps]# ls
docsexampleshost-managermanagerROOT

在tomcat目录中有个work目录,用来将webapps存放的文件编译成.class结尾的类文件。
强烈推荐将tomcat中bin目录下的脚本文件导出至系统,需要编辑/etc/profile.d/tomcat.sh,在里面添加



[root@libincla manager]# catalina.sh version(这里运行成功表示可以看到tomcat的版本以及CPU名称,架构等等信息)
Using CATALINA_BASE:/usr/local/tomcat
Using CATALINA_HOME:/usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:/usr/java/latest
Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Server version: Apache Tomcat/7.0.42
Server built:Jul 2 2013 08:57:41
Server number:7.0.42.0
OS Name:Linux
OS Version:2.6.32-431.el6.x86_64
Architecture:amd64
JVM Version:1.7.0_09-b05
JVM Vendor:Oracle Corporation
[root@libincla manager]# version.sh
Using CATALINA_BASE:/usr/local/tomcat
Using CATALINA_HOME:/usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:/usr/java

比较规范的作法是用catalina.sh调用/usr/local/tomcat/bin下的脚本,查看catalina。sh的帮助信息。
[root@libincla manager]# catalina.sh --help
Using CATALINA_BASE:/usr/local/tomcat
Using CATALINA_HOME:/usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:/usr/java/latest
Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Usage: catalina.sh ( commands ... )
commands:
debugStart Catalina in a debugger
debug -securityDebug Catalina with a security manager
jpda startStart Catalina under JPDA debugger
runStart Catalina in the current window
run -securityStart in the current window with security manager
startStart Catalina in a separate window
start -securityStart in a separate window with security manager
stopStop Catalina, waiting up to 5 seconds for the process to end
stop nStop Catalina, waiting up to n seconds for the process to end
stop -forceStop Catalina, wait up to 5 seconds and then use kill -KILL if still running
stop n -forceStop Catalina, wait up to n seconds and then use kill -KILL if still running
configtestRun a basic syntax check on server.xml - check exit code for result
versionWhat version of tomcat are you running?
Note: Waiting for the process to end and use of the -force option require that $CATALINA_PID is defined

由于catalina默认监听在8080端口上,在启动之前首先要保证你的8080端口没有被占用,然后在去开启服务,catalina.sh start
[root@libincla manager]# catalina.sh start
Using CATALINA_BASE:/usr/local/tomcat
Using CATALINA_HOME:/usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:/usr/java/latest
Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@libincla manager]# ss -tnlp | grep 8080
LISTEN0100:::8080:::*users:(("java",4760,40))

然后客户端win7访问一下,汤姆猫就算安装成功啦。

=========================================================================
tomcat:是由java编程语言编写的web container(Servlet,JSP),每个java项目运行起来以后都表现为一个jvm进程。它的运行过程大概是tomcat由classloader装载到JVM上运行的。
JDK主要提供JVM虚拟机,而JVM虚拟机自己有版本的依赖性。而运行在JVM虚拟机上的java程序却没有依赖性。
tomcat安装时生成的各目录以及定义,例如:
[root@libincla bin]# cd /usr/local/tomcat/
[root@libincla tomcat]# ls
binconflibLICENSElogsNOTICERELEASE-NOTESRUNNING.txttempwebappswork

bin目录:
[root@libincla tomcat]# cd bin/
[root@libincla bin]# ls
bootstrap.jarconfigtest.batmemcached-session-managerstartup.batversion.bat
catalina.batconfigtest.shmsmstartup.shversion.sh
catalina.shcpappend.batsetclasspath.battomcat-juli.jar
catalina-tasks.xmldaemon.shsetclasspath.shtomcat-native.tar.gz
commons-daemon.jardigest.batshutdown.battool-wrapper.bat
commons-daemon-native.tar.gzdigest.shshutdown.shtool-wrapper.sh

提供java的各种脚本,以及自举的jar文件。(自举就是当你启动tomcat的时候,默认并不是启动tomcat,而是JVM,还要tomcat自己在JVM上运行。该过程就是tomcat先启动JVM,再由JVM启动装载自己的过程。)
conf:配置文件目录server.xml(配置的主文件),tomcat-users.xml(tomcat实现用户认证时, tomcat自己的账号密码) web.xml(tomcat的部署描述符文件)
这里***一个部署的概念,部署(deployment)就是java应用程序放在指定路径下,让JVM能够找到它,让web container找到它,必要时访问web资源能够自动加载这个应用程序的所有类文件的过程。
logs:日志,log4j(独特类)java内部专用日志管理的专用类。
lib:库文件和类库文件
temp 临时文件目录
webapps:应用程序部署的位置、路径。
work:把webapps下的所有jsp格式的页面程序文件转换成Servlet程序文件并编译成class文件,编译完的class文件都放到work目录。
重点是tomcat的配置文件都定义了哪些?
[root@libincla tomcat]# cd conf/
[root@libincla conf]# ls
Catalinacatalina.policycatalina.propertiescontext.xmllogging.propertiesserver.xmltomcat-users.xmlweb.xml

主配置文件 server.xml
上下文文件 context.xml:每个webapp都有它自己的默认配置文件,此类配置文件正式用于部署为当前tomcat实例上所有的webapp目录下的META-INF目录中,通常用于定义会话管理器,Realm以及JDBC等。
部署描述符文件 web.xml部署为当前tomcat实例上所有的webapp目录下提供默认部署的描述符。通常用于为webapp提供基本的Servlet定义和MEM映射表。
用户账号文件、tomcat-users.xml
catalina的策略 catalina.policy 当基于-security选项启动tomcat实例时会读取此配置文件,用于定义java的安全策略,配置访问codebase或某些java类权限。
catalina的属性 catalina.properties :Java 属性定义的文件,用于设定类加载器路径/安全包列表,以及一些调整jvm性能的信息。
logging.properties:定义日志相关的配置信息,如日志级别、文件路径等信息.

tomcat的主配置文件:
每个组件由java类实现,有些组件的实现方式不止一种,有多个组件组成,有些组件可以嵌套别人的组件。

补充一个概念 路径别名,将一个url路径映射至非当前网站站点根目录下的其他目录资源中去。
下面一起来看看server.xml这个主配置文件

CATALINA工作起来的端口。
tomcat的工作端口 8005唯一可以接受的就是SHUTDOWN指令,用telnet连接 127.0.0.1 8005可以发送SHUTDOWN让java进程关闭掉。
[root@libincla tomcat]#telnet 127.0.0.1 8005
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SHUTDOWN
Connection closed by foreign host

现在再查看服务,
另外在主配置文件中分别定义了不同的connector
1、监听在8080的连接器,可以负责响应前段的http请求
connectionTimeout="20000"
redirectPort="8443" />

2、监听在8009的连接器,实现与当你的前段使用apache反向代理过来使用的ajp协议。

再次启动tomcat可以使用catalina.sh start
[root@libincla tomcat]# catalina.sh start
当你在开启tomcat以后,在work目录中就有这些目录
其中最后的index_jsp.java就是index的源码,index_jsp.class就是index的类文件。我们响应给用户的就是编译好运行的index_jsp.class
下面这个主页

是由/tomcat/webapps/ROOT提供的


tomcat自带了两个webapp
managerapp(server status)webapp 部署
host-manager (各虚拟主机的管理器)
点击主页上的Manager App会出现要求用户认证的信息

如何点“取消”,就出现如下画面,并提示你从哪提供认证信息。

如果想要编辑,需要编辑/tomcat/conf/tomcat-users.xml文件
在下方任意行中插入:
#定义一个叫manager-gui的角色
#设定账号叫tomcat,密码叫tomcat。

然后catalin.sh stop ; catalina.sh start
[root@libincla conf]# catalina.sh stop ; catalina.sh start
Using CATALINA_BASE:/usr/local/tomcat
Using CATALINA_HOME:/usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:/usr/java/latest
Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_BASE:/usr/local/tomcat
Using CATALINA_HOME:/usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:/usr/java/latest
Using CLASSPATH:/usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

再次点击Manager App按钮,输入定义的账号密码(都为tomcat),再次访问出现管理页面。
Page1
部分解释。
Page2
但是,如果用相同的账号密码访问Host-Manager页面,则会出现
Error Page1
所以重新编辑tomcat-users.xml



[root@libincla conf]# vim tomcat-users.xml 添加一个新的认证的用户叫jerry




再次catalina.sh stop && catalina.sh start
访问页面。
访问成功。

下面将更深入介绍汤姆猫的更多应用。



【汤姆猫的安装、使用。】转载于:https://blog.51cto.com/libincla/1558853

    推荐阅读