安装

(1) 下载安装

登录http://tomcat.apache.org/,在Download菜单选择要下载的版本
在Binary Distributions下, 最好选择最新版本的二进制压缩包Core zip

或者通过命令下载:

1
$ wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.70/bin/apache-tomcat-7.0.70.zip

zip包下载后不用安装,只需要解压即可

1
$ unzip apache-tomcat-7.0.70.zip

改名:

1
$ mv apache-tomcat-7.0.70 tomcat7

(2) Tomcat启动脚本优化

修改 bin/catalina.sh 脚本
添加JAVA_HOME、CATALINA_HOME、CATALINA_BASE、CATALINA_TMPDIR、CATALINA_PID、JAVA_OPTS参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ vim tomcat7/bin/catalina.sh
...
101 # USE_NOHUP (Optional) If set to the string true the start command will
102 # use nohup so that the Tomcat process will ignore any hangup
103 # signals. Default is "false" unless running on HP-UX in which
104 # case the default is "true"
105 # -----------------------------------------------------------------------------
106
107 export JAVA_HOME=/usr/local/jdk-1.7.0
108 export CATALINA_HOME=/usr/local/tomcat7
109 export CATALINA_BASE=/usr/local/tomcat7
110 export CATALINA_TMPDIR=/usr/local/tomcat7/temp
111 CATALINA_PID=/usr/local/tomcat7/pid
112 JAVA_OPTS="-server -Xms786m -Xmx786m -XX:PermSize=128m -XX:MaxPermSize=256m"
113
114 # OS specific support. $var _must_ be set to either true or false.
115 cygwin=false
116 darwin=false
117 os400=false
118 hpux=false

其中 JAVA_OPTS 是tomcat JVM调优参数

参数 说明
-server 会以服务器模式启动,会自动优化一些JVM参数
-Xms786m 最小堆内存
-Xmx786m 最大堆内存
-XX:PermSize=128m 初始分配永久代内存
-XX:MaxPermSize=256m 最大分配永久代内存

(3) 自启动设置

进入系统启动配置目录创建一个tomcat自启动脚本
这个脚本只需要修改 CATALINA_HOME 就可以直接使用

1
2
$ cd /etc/init.d/
$ vim tomcat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/bash
#
# hushuang.me
# /etc/rc.d/init.d/tomcat
# init script for tomcat precesses
#
# processname: tomcat
# description: tomcat is a j2se server
# chkconfig: 2345 86 16
# description: Start up the Tomcat servlet engine.
CATALINA_HOME="/usr/local/tomcat7"
if [ -f /etc/init.d/functions ]; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ]; then
. /etc/rc.d/init.d/functions
else
echo -e "/atomcat: unable to locate functions lib. Cannot continue."
exit -1
fi
RETVAL=$?
case "$1" in
start)
if [ -f $CATALINA_HOME/bin/startup.sh ];
then
echo $"Starting Tomcat"
$CATALINA_HOME/bin/startup.sh
fi
;;
stop)
if [ -f $CATALINA_HOME/bin/shutdown.sh ];
then
echo $"Stopping Tomcat"
$CATALINA_HOME/bin/shutdown.sh
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
;;
esac
exit $RETVAL

修改完成后,将tomcat自启动服务加入系统的启动管理器中

1
chkconfig -- add tomcat

查看一下tomcat服务在系统启动配置中的状态

1
2
3
4
5
6
7
8
9
10
$ chkconfig --list
...
tomcat 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
sshd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
svnserve 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
sysstat 0:关闭 1:启用 2:启用 3:启用 4:启用 5:启用 6:关闭
udev-post 0:关闭 1:启用 2:启用 3:启用 4:启用 5:启用 6:关闭
zabbix-agent 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭
zabbix-agentd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

这样,通过service命令在系统任何位置就可以直接启动tomcat了

1
$ service tomcat start

当然,我们的脚本还支持重启和关闭tomcat服务

1
2
$ service tomcat restart
$ service tomcat stop

(4) 根目录更改

默认情况下,Tomcat启动后,webapps下ROOT目录中的项目不需要输入路径就可以直接访问了
如果不想到Tomcat的ROOT目录去部署项目,不想对原有的Tomcat有更多接触,想自己定义一个目录作为Tomcat的根目录,我们可以这样做:

在conf目录创建一个【Catalina/localhost】目录

1
$ mkdir -p conf/Catalina/localhost/ROOT.xml

在【localhost】目录创建一个ROOT.xml的文件
加入一段指定内容

1
2
3
4
$ vim conf/Catalina/localhost/ROOT.xml
...
<Context crossContext="true" docBase="/home/username/tomcat" path="/" reloadable="true">
</Context>

然后根据docBase创建/home/username/tomcat目录

1
$ mkdir -p /home/username/tomcat

然后将你打好的war包放入tomcat,解压

1
2
3
4
5
6
7
8
9
10
$ cp web-0.0.1-SNAPSHOT.war /home/username/tomcat
$ cd /home/username/tomcat
$ unzip web-0.0.1-SNAPSHOT.war
...
$ ll
-rw-r--r-- 1 root root 25812334 8月 24 17:23 web-0.0.1-SNAPSHOT.war
-rw-r--r-- 1 root root 2559 8月 24 17:53 login.jsp
drwxr-xr-x 2 root root 4096 8月 25 19:09 META-INF
drwxr-xr-x 3 root root 4096 7月 14 17:37 resources
drwxr-xr-x 5 root root 4096 8月 24 17:53 WEB-INF

启动tomcat你就可以访问你的应用了

1
$ service tomcat start