安装tomcat

需要有JDK环境。系统中已安装gcc、automake等编译工具。
参考:java jdk环境搭建

tomcat官网下载:http://tomcat.apache.org/download-90.cgi


下载解压

这里就指定了安装目录是**/usr/local/tomcat**,后面都要用这个目录,也可以是/opt等其他目录。

cd /usr/local
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.0.M13/bin/apache-tomcat-9.0.0.M13.tar.gz
tar zxvf apache-tomcat-9.0.0.M13.tar.gz
mv apache-tomcat-9.0.0.M13 tomcat

编译守护程序

cd /tomcat/bin/
tar zxvf commons-daemon-native.tar.gz
#进入解压出来的目录,一般是commons-daemon-X.X.XX-native-src这个文件夹
cd commons-daemon-1.0.10-native-src/unix
./configure
make     #生成jsvc守护程序
cp jsvc /usr/local/tomcat/bin

这里如果**./configure失败(提示找不到jdk路径,是因为jdk环境变量没有配置好)可以用./configure --with-java=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64**(JAVA_HOME)临时代替(这是我的JDK安装目录)。


设置环境变量

这里注意不要写错了,一旦写错,大多数命令基本都会失效,必须手工指定路径运行命令修改
/usr/bin/vim /etc/profile然后注销或重启生效。

编辑文件:vim /etc/profile加入tomcat路径;和**/tomcat/bin路径。
注意格式,一般有两种,一种是每引用一个变量就
export**一下,像这种:

export CATALINA_HOME=/usr/local/tomcat/
export PATH=$CATALINA_HOME/bin  #这里注意PATH,变量不能重复出现,相同的路径要合并,前面加":"

还有一种是合并起来写,像这样:

CATALINA_HOME=/usr/local/tomcat/   #这一句新加的
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_HOME/bin   #这里增加了(:$CATALINA_HOME/bin)
export JAVA_HOME JRE_HOME CLASS_PATH PATH CATALINA_HOME      #这里增加了(CATALINA_HOME)


使配置立刻生效:source /etc/profile. /etc/profile


修改守护程序

在tomcat/bin目录里面有一个daemon.sh 这个文件就是启动和关闭tomcat的服务守候程序

注意:之前的一些tomcat版本,例如tomcat 6.0.x, 可能没有这个文件, 其实这个文件就是放在commons-daemon-x.x.x-native-src/unix/samples/Tomcat7.sh这儿的(此目录还有一个Tomcat5.sh),只不过新版本的tomcat把它移动到了bin目录下,并取名为daemon.sh了。所以,如果您使用的是tomcat 6,那就把这个Tomcat7.sh文件复制到bin目录下,并取名为daemon.sh即可。

修改daemon环境变量:cd /usr/local/tomcat/bin && vim ./daemon.sh
修改TOMCAT_USER=tomcat为您要指定身份运行的linux账号用户名,此处指定用户名为tomcat(一般不改或新建其他用户,不用现成的用户,要禁止登陆)。并把**JAVA_HOME=...**前面的注释(即“#”号)去掉,并设置为jdk的安装目录路径。

修改好保存退出。创建用户、修改权限。

useradd -M tomcat                   #创建没有主目录的tomcat用户
chsh tomcat -s /sbin/nologin        #禁止tomcat登陆操作,类似于windows的系统账户
chown -R tomcat /usr/local/tomcat   #将/usr/local/tomcat下的所有档案与子目录进行相同的拥有者变更为tomcat
chmod +x /usr/local/tomcat/bin/*.sh #为tomcat/bin/目录下的*.sh添加相应的x权限

防火墙、开机自启

vim /etc/sysconfig/iptables
#加入下面这句,注意加到22端口下,不要加在-A INPUT -j REJECT语句之后,会失效。
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT   #tomcat默认端口是8080
service iptables restart   #重启防火墙
cd /usr/local/tomcat/bin
./startup.sh                 #启动tomcat
./daemon.sh  start           #启动守护程序
curl http://localhost:8080   #测试一下是否启动

如果daemon.sh启动不了,重点查验tomcat的bin目录下的*.sh是否有x可执行权限、linux帐号是否有tomcat目录的读写权限,是否有tomcat/logs日志目录的写权限等等。

添加tomcat为Linux的服务,需要创建一个软链到/etc/init.d/目录中

ln -s /usr/local/tomcat/bin/daemon.sh /etc/init.d/tomcat
#现在就可以用系统服务来启动停止tomcat服务啦。
/etc/init.d/tomcat  start #启动tomcat
service tomcat start      #启动tomcat
/etc/init.d/tomcat  stop  #关闭tomcat
service tomcat stop       #关闭tomcat

设置tomcat服务开机启动
法1.在daemon.sh中增加以下的语句:

#!/bin/sh      #这句是原文件里有的,下面的2句是要添加的,是有#号的。
# chkconfig: 2345 90 15
# description: Tomcat-en Manager

再运行 chkconfig命令增加tomcat服务,而达到自启动(只有上一步“添加tomcat为Linux的服务”生效了这一步才能执行,否则报错)

chkconfig --add tomcat

法2.修改/etc/rc.d/rc.local
在/etc/rc.d/rc.local文件最后添加下面两句

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64
/usr/local/tomcat/bin/startup.sh start
或
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.111-0.b15.el6_8.x86_64
/usr/local/tomcat/bin/catalina.sh start

增加可执行权限:chmod +x /etc/rc.d/rc.local

关于catalina.sh启动文件,参考:catalina.sh详解


如果想再创建一个tomcat服务,只需要将/usr/local/tomcat这个目录复制一份,例如:

cp /usr/local/tomcat /usr/local/tomcat1

再修改一下tomcat1的端口号(/usr/local/tomcat/opt/tomcat1/conf/server.xml中的端口号不能与其它的服务重复)。最后从上面所述"设置环境变量"开始,一直往下,设置新用户,创建用户,修改权限,设置防火墙,新建服务tomcat1,设置开机自启,就OK啦。
通过这种方式,您就可以为一台Linux服务器创建任意多个tomcat服务了。最后只需要安装一个前端服务器(例如Nginx或Apache),将不同域名的请求转发到不同的tomcat服务程序就可以了。

参考:

Linux下Apache与多个Tomcat 集群负载均衡

Nginx Tomcat 集群负载均衡解决笔记

Tomcat组件安装+Nginx反向代理Tomcat+Apache使用mod_jk和mod_proxy反向代理和负载均衡


文章作者: Leo
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LeoLan的小站
环境搭建 tomcat
喜欢就支持一下吧