Linux下tomcat的安装、配置、启动
本文由 小茗同学 发表于 2016-10-27 浏览(4635)
最后修改 2016-10-31 标签:linux tomcat 安装 启动 配置

安装

安装jdk

首先需要安装jdk,没有安装的可以参考这篇文章

解压

这里以安装tar.gz格式为例,假设已经下载好了apache-tomcat-7.0.39.tar.gz,我要安装到/home/tomcat/下面:

tar zxvf apache-tomcat-7.0.39.tar.gz
cp -r apache-tomcat-7.0.39 /home/tomcat/tomcat-7.0 #文件夹名字自定义

配置

根据实际需要修改tomcat/conf/server.xml里面的端口,增加utf-8配置:

<Connector port="8081" URIEncoding="UTF-8" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />

删除webapps下的除了ROOT其它所有文件夹,正式环境这些都是没用的。

启动与停止

cd tomcat/bin
./startup.sh # 启动tomcat
./shutdown.sh # 关闭tomcat
cd ../logs
tail -f catalina.out # 实时查看日志
Ctrl+C # 退出tail命令
ps -ef|grep java # 查看tomcat是否已经启动

此时打开浏览器,访问http://ip:8081,不出问题就可以看到默认首页了,如果看不到,检查一下是不是防火墙引起的。

配置成服务,开机自启

修改bin/catalina.sh这个文件,在文件开始添加如下内容,修改之后是这样的:

#!/bin/sh

# chkconfig: 2345 10 90
# description:Tomcat service
JAVA_HOME=/home/java/jdk-1.7
CATALINA_HOME=/home/tomcat/tomcat-7.0-80

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with

其中,添加的前2行虽然是注释,但是必不可少,# chkconfig是服务的配置,第一个数字是服务的运行级,2345表明这个服务的运行级是2、3、4和5级(Linux的运行级为0到6);第二个数字是启动优先级,数值从0到99;第三个数是停止优先级,数值也是从0到99。第二行# description是对服务的描述。然后就是配置Java环境变量和CATALINA_HOME,注意,即使是其它地方已经设置了Java环境变量这里也要重复设置一遍。

接下来:

cp bin/catalina.sh /etc/init.d/tomcat # 复制文件,tomcat就是新服务的名称,可以随便改
chmod 755 /etc/init.d/tomcat # 修改权限
chkconfig --add tomcat # 添加开机自启
chkconfig --list # 查看是否添加成功

以后就可以用service tomcat start|stop|run来管理tomcat服务了。

在tomcat文件的头两行的注释语句中,一定要包含chkconfig和description两部分内容(确认不要拼写错误),否则在执行chkconfig --add tomcat时,会出现tomcat服务不支持chkconfig的错误提示。

一些特殊情况,选看

默认情况下这样没任何问题,而且可以多个tomcat并存,但是今天在公司一台linux上碰到问题,启动tomcat时CATALINA_HOMECATALINA_BASE的值总是变成另外一个tomcat的路径,后来发现是全局环境变量增加了如下代码:

export TOMCAT_HOME=/opt/tomcat7/tomcat-health-8080
export CATALINA_HOME=/opt/tomcat7/tomcat-health-8080
export CATALINA_BASE=/opt/tomcat7/tomcat-health-8080

此时只需要注释掉上面3个环境变量即可。

另外还是不知为何,今天新复制的一个tomcat总是无法启动,启动了虽然不报错,但就是看不到tomcat首页,最后在catalina.sh里面增加临时环境变量就OK了,当然这种情况非常少见,除非是有人改动了这些配置。

#!/bin/sh
JAVA_OPTS="$JAVA_OPTS -server -Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:PermSize=256m -XX:MaxPermSize=512m"
# 关键是下面2行,上面一行是配置内存等情况
export CATALINA_HOME=/opt/tomcat7/tomcat-ggly-9300
export CATALINA_BASE=/opt/tomcat7/tomcat-ggly-9300
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with

另外如果还是无法正常启动,看看是不是防火墙引起的,关于防火墙的修改配置这里就不提了。