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
    • 会自动弹出像如下的提示

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开机自动启动

  1. 在 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" 
  1. 增加 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可以配置在多个目录下,使用不同的端口,互不影响。

  1. 设置开机自启
systemctl enable tomcat.service
  1. 启动tomcat
systemctl start tomcat.service
  1. 在浏览器测试(略)

  2. 上述步骤操作完成后如果还是访问不了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
posted @ 2021-05-11 11:58  codebound  阅读(82)  评论(0)    收藏  举报