Ubuntu 安装tomcat

Ubuntu Server 14.04.1 LTS 环境安装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
//Tomcat 安装位置
sudo mkdir /usr/local/tomcat

//复制安装文件到/usr/local/目录下面,解压
sudo tar -zxvf apache-tomcat-6.0.28.tar.gz
sudo mv apache-tomcat-6.0.28 tomcat

//配置startup.sh文件,在“exec "$PRGDIR"/"$EXECUTABLE" start "$@"”前添加以下配置项
sudo vi /usr/local/tomcat/bin/startup.sh

JAVA_HOME=/usr/lib/java
PATH=$JAVA_HOME/bin:$PATH 
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
TOMCAT_HOME=/usr/local/tomcat

//启动tomcat服务器
cd /usr/local/apache-tomcat-6.0.28/bin
sudo ./startup.sh

//如果出现下面类似信息,说明tomcat已经成功启动
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

通过linux的ps命令结合管道查看tomcat服务是否成功启动。

1
2
3
4
sudo ps -ef | grep tomcat
//如果输出类似下面的信息,说明tomcat已经成功运行
root      4925     1 12 21:56 pts/1    00:00:29 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
host+  4952  4855  0 22:00 pts/1    00:00:00 grep --color=auto tomcat

除了查看服务名外,我们还可以通过端口查看,刚装好的tomcat在未修改端口的情况下,默认是使用的8080端口,这时我们可以使用以下命令查看

1
2
3
4
5
sudo netstat -ant | grep 8080
//未成功监听8080端口时,输出:
tcp6       0      0 127.0.0.1:8080          127.0.0.1:60446         TIME_WAIT 
//成功监听8080端口时,输出:
tcp6       0      0 :::8080                 :::*                    LISTEN

上面我们可以看出,启动tomcat是执行/bin目录的startup.sh文件。如果我们想在任意目录启动或者关闭tomcat怎么办呢?那么这时候我们可以把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
//创建服务
sudo vi /etc/init.d/tomcat

//加入以下内容
#!/bin/sh

### BEGIN INIT INFO
# Provides:          tomcat
# Required-Start:    $remote_fs
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start or stop the tomcat.
### END INIT INFO

case $1 in
    start)
            sh /usr/local/tomcat/bin/startup.sh
            ;;
    stop) 
            sh /usr/local/tomcat/bin/shutdown.sh
            ;;
    restart)
            sh /usr/local/tomcat/bin/shutdown.sh
            sh /usr/local/tomcat/bin/startup.sh
            ;;
    esac  
    exit 0

上面在/etc/init.d目录下面创建了一个tomcat的文件,并在文件里面写了一个shell脚本。脚本的用途就是接收一个参数,通过case语句执行相应的shell命令。

在创建好文件以后,还得对文件进行可执行权限设置。

1
2
3
4
5
6
7
//设置脚本文件可执行标记
sudo chmod 755 /etc/init.d/tomcat

//改变权限后我们可以执行
sudo /etc/init.d/tomcat start/stop/restart
//或
sudo service tomcat start/stop/restart

两条命令的执行效果一样,只是第二条命令可以不用在tomcat的脚本目录下执行。直接使用service命令即可。

最后我们把tomcat做成随机启动(不是”随机数”的随机)。当机器重新启动后,系统直接启动tomcat。

有了上面的步骤以后,做成随机启动其实很简单,就一条命令。

1
2
3
4
5
//安装随机启动
sudo update-rc.d -f tomcat defaults 

//卸载随机启动
sudo update-rc.d -f tomcat remove

[*备忘] 修改默认的ROOT,实现直接访问,不需要加项目名

1
2
3
4
5
6
7
8
sudo vi /usr/local/tomcat/conf/server.xml

//在以下内容后面
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
//添加下面内容(xx代表你的项目名)
<Context path="" docBase="/usr/local/tomcat/webapps/xx" reloadable="true" />
//或直接把ROOT目录清空,把项目放入ROOT目录下