CentOS安装Tomcat
Jacob Chen Lv3

1.安装tomcat

安装tomcat之前,需要先安装JDK,安装JDK参考:

官网下载tomcat

创建一个文件夹用于存放tomcat安装包

1
2
3
4
5
cd root/
mkdir software
cd software/
mkdir tomcat
cd tomcat

将下载的tomcat安装包放置到 /root/software/tomcat

解压安装包,解压完成后再删除安装包

1
2
tar -zxvf apache-tomcat-9.0.21.tar.gz
rm apache-tomcat-9.0.21.tar.gz

将解压后的文件夹重命名为 tomcat9

1
mv /root/software/tomcat/apache-tomcat-9.0.12 /root/software/tomcat/tomcat9

2.配置自启动

切换至Tomcat的bin目录执行vi setenv.sh

1
2
cd tomcat9/bin
vi setenv.sh

按i进入编辑模式,拷贝以下代码粘贴,然后保存退出

1
2
3
4
#add tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

确保文件setenv.sh可执行

1
chmod +x setenv.sh

3.配置service,开机启动

1
2
cd /usr/lib/systemd/system
vi tomcat.service

也可以直接

1
vi /usr/lib/systemd/system/tomcat.service

按i进入编辑模式,拷贝以下代码粘贴,然后保存退出

注意将第6和7行的tomcat路径 /root/software/tomcat/tomcat9 换成你自己的tomcat的绝对路径

1
2
3
4
5
6
7
8
9
10
11
12
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/root/software/tomcat/tomcat9/tomcat.pid
ExecStart=/root/software/tomcat/tomcat9/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

执行以下指令将tomcat.service添加开机至开机启动

配置开机启动

1
systemctl enable tomcat

启动tomcat

1
systemctl start tomcat

停止tomcat

1
systemctl stop tomcat

重启tomcat

1
systemctl restart tomcat

当然启动和结束tomcat也可以在tomcat的安装目录的bin目录下执行 ./shutdown.sh./startup.sh 来完成。

配置完成,建议重启服务器,即输入命令 reboot 或者 sudo reboot

4.配置tomcat被外部访问

在linux上开启的tomcat使用浏览器访问不了。主要原因在于防火墙的存在,导致的端口无法访问。CentOS7使用firewall而不是iptables。所以解决这类问题可以通过添加firewall的端口,使其对我们需要用的端口开放。

查看防火墙状态,得到结果是running或者not running

1
firewall-cmd --state

在running 状态下,向firewall 添加需要开放的端口
永久的添加8080端口,去掉 --permanent 则表示临时

1
firewall-cmd --permanent --zone=public --add-port=8080/tcp

加载配置,使得修改有效

1
firewall-cmd --reload

查看开启的端口

1
firewall-cmd --permanent --zone=public --list-ports

5.补充

CentOS7以下有专门的防火墙操作命令
开启防火墙

1
systemctl start firewalld.service

关闭防火墙

1
systemctl stop firewalld.service

开机自动启动

1
systemctl enable firewalld.service

关闭开机启动

1
systemctl disable firewalld.service

查看防火墙状态

1
systemctl status firewalld