注:参考本文可架设多用户多服务的Java虚拟主机,即配置tomcat以指定身份运行,且一台服务器上可安装任意多个tomcat服务。
一、环境
CentOS 7.6
java version “1.8.0_191”
apache-tomcat-8.5.34
二、安装jdk
# mkdir -p /usr/java
# tar zxf jdk-8u191-linux-x64.tar.gz -C /usr/java/
# alternatives –config java (注:请留意版本的数量N,然后采用N+1(如果alternatives –config java指令没有输出,你可假设 N=0)。
#alternatives –install /usr/bin/java java /usr/java/jdk1.8.0_191/bin/java 1 # alternatives –install /usr/bin/jar jar /usr/java/jdk1.8.0_191/bin/jar 1 #alternatives –install /usr/bin/javac javac /usr/java/jdk1.8.0_191/bin/javac 1
# java -version
java version “1.8.0_191” Java(TM) SE Runtime Environment (build 1.8.0_191-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)
配置环境变量
编辑/etc/profile,添加如下内容:
export JAVA_HOME=/usr/java/jdk1.8.0_191
export JRE_HOME=/usr/java/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
使环境变量生效:source /etc/profile
三、下载并解压Tomcat
下载文件解压到/usr/local目录下
tar zxvf apache-tomcat-8.5.34.tar.gz -C /usr/local
cd /usr/local
ln -s apache-tomcat-8.5.34 tomcat
四、编译安装tomcat daemon服务守候程序
cd /usr/local/tomcat/bin
tar zxvf commons-daemon-native.tar.gz
1、解压后会生成一个commons-daemon-1.1.0-native-src目录,cd到这个目录的Linux子目录 cd commons-daemon-1.1.0-native-src/unix
2、安装gcc(如已安装则忽略)
yum -y install gcc
3、执行编译安装
./configure 注意:需要先安装好make,gcc等编译工具
make
4、执行make后会生成一个jsvc的文件,将其复制到tomcat的bin目录
cp jsvc /usr/local/tomcat/bin
5、在tomcat/bin目录里面有一个daemon.sh 这个文件就是启动和关闭tomcat的服务守候程序
修改daemon环境变量:
vi /usr/local/tomcat/bin/daemon.sh,找到类似下面配置段:
test “.$TOMCAT_USER” = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
# JAVA_HOME=/opt/jdk-1.6.0.22
修改TOMCAT_USER=tomcat为您要指定身份运行的linux账号用户名,此处指定用户名为tomcat。
并把JAVA_HOME=…前面的注释(即“#”号)去掉,并设置为jdk的安装目录路径。修改后的配置段如下:
test “.$TOMCAT_USER” = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE JAVA_HOME=/usr/java/jdk1.8.0_191
6、现在修改/usr/local/tomcat目录的所有者为tomcat(即您要指定身份运行的linux帐号):
useradd -M tomcat
chsh tomcat -s /sbin/nologin
chown -R -H tomcat /usr/local/tomcat 因/usr/local/tomcat为符号链接,所以加参数-H,若不是符合链接,无需加参数-H
7、为tomcat/bin/目录下的*.sh添加相应的x权限:
chmod +x /usr/local/tomcat/bin/*.sh
8、现在,可以测试一下daemon是否可以启动运行,启动方式如下:
/usr/local/tomcat/bin/daemon.sh start
curl http://localhost:8080
#测试一下是否启动
9、停止tomcat, 对应的命令为:/usr/local/tomcat/bin/daemon.sh stop
10、添加tomcat为Linux的服务,这时就简单了,只需要创建一个软链到/etc/init.d/目录中即可:
ln -s /usr/local/tomcat/bin/daemon.sh /etc/init.d/tomcat
11、现在就可以用它启动/关闭tomcat了:
/etc/init.d/tomcat start
/etc/init.d/tomcat stop
12、设置tomcat服务开机启动,需要在daemon.sh中增加以下的语句:
#!/bin/sh #这句是原文件里有的,下面的2句是要添加的
# chkconfig: 2345 90 15
# description: Tomcat-en Manager
13、再运行chkconfig命令增加tomcat服务,而达到自启动:
chkconfig –add tomcat
重启机器,测试一下。
附录1:再创建一个tomcat服务(tomcat1)
如果想再创建一个tomcat服务,只需要将/usr/local/tomcat这个目录复制一份,例如: cp -r apache-tomcat-8.5.34 tomcat1
再修改一下tomcat1的端口号(/usr/local/tomcat/conf/server.xml、/usr/local/tomcat1/conf/server.xml中的端口号不能与其它的服务重复)。最后从上面所述第5步开始,创建另一个服务即可。
通过这种方式,您就可以为一台Linux服务器创建任意多个tomcat服务了。最后只需要安装一个前端服务器(例如Nginx或Apache),将不同域名的请求转发到不同的tomcat服务程序就可以了。
(1)将/usr/local/tomcat这个目录复制一份
cp -r apache-tomcat-8.5.34 tomcat1
(2)修改端口号(shutdown、HTTP、AJP),如端口分别修改为8007、8081、8010
vi /usr/local/tomcat1/conf/server.xml
并保存。
(3)修改/usr/local/tomcat1目录的所有者为tomcat
chown -R tomcat /usr/local/tomcat1
(4)为tomcat1/bin/目录下的*.sh添加相应的x权限
chmod +x /usr/local/tomcat1/bin/*.sh
(5)测试一下daemon是否可以启动运行,启动方式如下:
/usr/local/tomcat1/bin/daemon.sh start
curl http://localhost:8081
(6)停止tomcat, 对应的命令为
/usr/local/tomcat1/bin/daemon.sh stop
(7)添加tomcat为Linux的服务,这时就简单了,只需要创建一个软链到/etc/init.d/目录中即可
ln -s /usr/local/tomcat1/bin/daemon.sh /etc/init.d/tomcat1
(8)现在就可以用它启动/关闭tomcat了:
/etc/init.d/tomcat1 start
/etc/init.d/tomcat1 stop
(9)设置tomcat服务开机启动
chkconfig –add tomcat1