#参考前人经验
前提部署好JDK1.8
单个tomcat部署(环境变量可以省略需要使用startup.sh启动)
直接解压使用bin/startup.sh启动即可,默认访问端口号8080
多个tomcat部署(环境变量可以省略需要使用startup.sh启动)
如果想要同时启动多个tomcat,环境变量就要么都不配置,要么全都配置
一、原理讲解:(根据catalina.sh)
tomcat在启动时会去查找tomcat的根目录,并且会通过CATALINA_BASE和CATALINA_HOME 这两个变量去查找,所以不同的一台服务器上不同tomcat的根目录以及上述两个变量的值是不一样的,因此我们要设置一下。
二、详细步骤
1.修改/etc/profile文件
需要在文件中添加多组CATALINA环境变量
####第一个Tomcat####
export CATALINA_BASE=/usr/local/tomcat/apache-tomcat-8
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat-8
export TOMCAT_HOME=/usr/local/tomcat/apache-tomcat-8
####第二个Tomcat####
export CATALINA_1_BASE=/usr/local/tomcat2/apache-tomcat-8
export CATALINA_1_HOME=/usr/local/tomcat2/apache-tomcat-8
export TOMCAT_1_HOME=/usr/local/tomcat2/apache-tomcat-8
多个tomcat,继续往下添加即可。
修改完成后执行source /etc/profile使其生效。
2.修改tomcat(除了第一个tomcat)根目录bin下的catalina.sh文件
具体操作是切换到tomcat2的bin目录下,vim catalina.sh,找到下面的注释代码
#OS specific support. $ var must be set to either true or false.
并在上述代码下面添加以下代码,目的是为了tomcat2启动的时候能通过该文件的里的环境变量$CATALINA_2_BASE 和 $CATALINA_2_HOME找到/etc/profile配置文件里的环境变量,不加指定的话tomcat会默认指定系统环境变量从而找不到tomcat2的环境变量,就会无法启动tomcat2
#myself : add
export CATALINA_BASE=$CATALINA_2_BASE
export CATALINA_HOME=$CATALINA_2_HOME
3.修改端口号 conf/service.xml
tomcat服务器需配置三个端口才能启动,安装时默认配置并启用了这三个端口,所以当要运行多个tomcat服务时需要修改这三个端口,不能相同,防止端口冲突。
除了第一个tomcat使用的默认配置好的端口号(如果有需要也可以修改),后面添加的tomcat都要通过其根目录下的conf目录下的server.xml文件来修改端口号防止端口冲突。
http访问端口(默认为8080端口):
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
监听tomcat关闭的端口(默认为8005):
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
负责接收其他http服务器的请求端口(默认为8009):
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改完端口之后,要重启tomcat,并且在防火墙里也要开放以上端口。
4.加入防火墙规则或屏蔽防火墙
添加端口号 firewall-cmd --zone=public --add-port=8080/tcp --permanent
重新载入防火墙 firewall-cmd --reload
5.启动 测试访问
启动:./startup.sh
访问测试:http://localhost:8080