Tomcat
Linux安装tomcat
一、需要先配置jdk
- 安装tomcat需要先配置jdk,所以没有配置jdk同学,先移步 Linux安装JDK
二、卸载tomcat
- 检查linux是否安装tomcat
rpm -qa|grep tomcat
查看下系统信息,确认是32位还是64位:uname -a
输入rpm -qa|grep tomcat
如果有通过rpm -e rpm -qa|grep tomcat(或rpm -e 加上面rpm -qa|grep tomcat显示的结果)
注意:一般tomcat安装都是通过压缩包的方式,所以这一步可以跳过
三、下载Tomcat
去官网下载,找到:Binary Distributions

四、上传到Linux,安装
先进入你要上传的位置,执行命令 rz ,在本机弹窗选择文件窗口,选择上传
- 进行解压
tar -xzvf apache-tomcat-9.0.45.tar.gz

- 重命名文件
mv apache-tomcat-9.0.45 tomcat9
五、配置环境
输入:
vim /etc/profile打开配置文件,按 i 进入编辑模式,在profile文件尾部unset -f pathmunge后面添加如下内容:
unset i
unset -f pathmunge
export JAVA_HOME=/usr/java/jdk1.8.0_281
export JRE_HOME=${JAVA_HOME}/jre
export CATALINA_HOME=/usr/local/tomcat9
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${CATALINA_HOME}/bin
export PATH=$PATH:${JAVA_PATH}:$PATH
编辑完之后,按Esc 并输入
:wq(小写) 保存并退出编辑,然后输入以下指令:source /etc/profile刷新环境配置使profile文件立即生效
- 修改Tomcat端口
cd /usr/local/tomcat9/conf 文件夹 vi server.xml 编辑配置文件

修改端口后,默认8080,然后按ESC键,然后按 :wq(注意有一个英文冒号),保存并退出。
六、验证安装结果
- 启动服务
- 进入解压目录的bin文件夹,运行命令
./startup.sh - 会自动弹出像如下的提示
- 进入解压目录的bin文件夹,运行命令

ps -ef|grep java

- 查询端口是否有进程守护用如下命令grep对应端口,如8088为端口号
netstat -nalp|grep 8088
七、防火墙
查看防火墙开放端口列表命令:firewall-cmd --zone=public --list-ports
开启防火墙8088端口: firewall-cmd --zone=public --add-port=8088/tcp --permanent
关闭防火墙命令:systemctl stop firewalld.service
禁止防火墙开机启动命令:systemctl disable firewalld.service
重新加载防火墙命令:firewall-cmd --reload
- 但是开启的时候,可能报这个错
Failed to start firewalld.service: Unit firewalld.service is masked.
- 查了很久没找到解决办法,于是试着输入了下面这行命令,解决了。
systemctl unmask firewalld.service
来看一些命令:
#启动tomcat, 在tomcat目录下(官方名称:apache-****)
bin/startup.sh
#关闭tomcat, 在tomcat目录下(官方名称:apache-****)
bin/shutdown.sh
#如果关闭出错,可以杀死线程
ps -ef | grep tomcat
kill *(端口)
#访问
curl 127.0.0.1:8080
curl ip:8080
-
其他一些问题
- 启动以后,可以利用命令
ps -ef|grep tomcat查看tomcat是否正常启动。 - 如果正常启动以后无法访问,可以先不修改8080端口,尝试用8080端口访问。如果可以通过8080端口正常访问,则说明80端口被其他应用占用。
- 或者使用
netstat -an|grep 8080命令查看是否有程序占用8080端口。
- 启动以后,可以利用命令
八、设置tomcat开机自动启动
- 在 tomcat9/bin 目录下面,增加 setenv.sh 配置,服务启动的时候会调用,同时配置java内存参数。
输入命令编辑:vim /usr/local/tomcat9/bin/setenv.sh
#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"
- 增加 tomcat.service,在
/usr/lib/systemd/system目录下增加 tomcat.service
输入命令编辑:vi /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment='JAVA_HOME=/usr/java/jdk1.8.0_281/'
Environment='CATALINA_PID=/usr/local/tomcat9/tomcat.pid'
Environment='CATALINA_HOME=/usr/local/tomcat9/'
Environment='CATALINA_BASE=/usr/local/tomcat9/'
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
PIDFile=/usr/local/tomcat9/tomcat.pid
ExecStart=/usr/local/tomcat9/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
- 说明:
[unit]配置了服务的描述,规定了在network启动之后执行。
[service]配置了环境变量,JAVA_HOME,服务的pid,服务的启动,停止,重启,内存参数。
[install]配置了使用用户。
当需要启动多个tomcat时,复制多个tomcat安装文件在/usr/local/下,如/usr/local/tomcat2,并配置多个tomcat.service 如tomcat2.service,tomcat3.service 在配置中修改对应的路径即可。
因为配置pid,在启动的时候会在tomcat根目录生成tomcat.pid文件,停止之后删除。
同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。
多个tomcat可以配置在多个目录下,使用不同的端口,互不影响。
- 设置开机自启
systemctl enable tomcat.service
- 启动tomcat
systemctl start tomcat.service
-
在浏览器测试(略)
-
上述步骤操作完成后如果还是访问不了tomcat服务,可以尝试重启一下linux服务器,命令:
reboot
systemctl常用命令:
- 其中 .service 可以省略
查看全部服务命令:
systemctl list-unit-files --type service
查看服务
systemctl status name.service
增加开机启动
systemctl enable name.service
启动服务
systemctl start name.service
停止服务
systemctl stop name.service
重启服务
systemctl restart name.service
删除开机启动
systemctl disable name.service

浙公网安备 33010602011771号