一、前置条件
安装tomcat需要先安装jdk
二、Linux上安装tomcat
1. 下载Apache tomcat
官网下载链接:https://tomcat.apache.org/download-90.cgi
2. 检查linux是否安装tomcat
检测是否有安装了Tomcat:
rpm -qa|grep tomcat
查看Tomcat的进程ID:
ps -ef|grep tomcat
查看Tomcat目录:
find / -name tomcat
查看下系统信息,确认是32位还是64位:
uname -a
[root@YIWEI /]# uname -a
Linux YIWEI.SERVER 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux[root@YIWEI /]#
3. 上传服务器、解压缩tomcat
使用Xftp工具将tar.gz压缩包上传到 /usr/local 目录中,以下操作命令都需要在root账户下操作。
进入目录解压安装包
进入目录:
cd /usr/local
解压文件:
tar -zxvf apache-tomcat-8.5.78.tar.gz
将目录apache-tomcat-8.5.37重命名为tomcat,方便一些
重命名文件:
mv apache-tomcat-8.5.78 tomcat8
4. 配置环境变量
输入:
vim /etc/profile
打开配置文件,按 i 进入编辑模式,在profile文件尾部
unset -f pathmunge
后面添加如下内容:
unset i
unset-f pathmunge
exportJAVA_HOME=/usr/local/java/jdk1.8.0_221
exportJRE_HOME=${JAVA_HOME}/jre
exportCATALINA_HOME=/usr/local/tomcat8
exportCLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATHexportJAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${CATALINA_HOME}/bin
exportPATH=$PATH:${JAVA_PATH}:$PATH
编辑完之后,按Esc键退出,并输入
:wq
(小写) 保存,或按
:wq!
强制保存,然后输入以下命令:
source /etc/profile
刷新环境配置使profile文件立即生效。
5. 正常启动
运行 `/usr/local/tomcat8/bin/startup.sh ` 就会启动tomcat,
在浏览器中访问http://localhost:8080了,能看到界面,说明访问成功。
6. 正常关闭
运行
/usr/local/tomcat8/bin/shutdown.sh
就会关闭tomcat
7. 修改tomcat配置
进入
/usr/local/tomcat8/conf
目录修改server.xml中的tomcat端口
运行
vim server.xml
用“/8080”定位到8080端口。如下图:
按 i 进入编辑模式,可以修改端口,默认8080,然后按ESC键退出,并输入
:wq
(注意有一个英文冒号)保存,或按
:wq!
强制保存。
8. 局域网内无法访问解决办法
访问本地:http://localhost:8080/正确。但局域网内无法访问,而且服务器可ping通。
注意:如果执行
firewall-cmd --zone=public --add-port=3690/tcp --permanent
,
提示 FirewallD is not running 错误,则说明防火墙未开启。
1. 通过 systemctl status firewalld 查看firewalld状态,发现当前是Active: inactive (dead)状态,即防火墙未开启。
2. 通过 systemctl start firewalld 开启防火墙,没有任何提示即开启成功。
3. 再次通过 systemctl status firewalld 查看firewalld状态,显示running即已开启了。
4. 如果要关闭防火墙设置,可通过 systemctl stop firewalld 这条指令来关闭该功能。
先查看防火墙开放端口列表对于Centos7系统
firewall-cmd --zone=public --list-ports
如果没有8080端口,添加端口
1 如果是firewalld防火墙 (对于Centos7系统),开启防火墙端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
并且重新加载防火墙
firewall-cmd --reload
2 如果是iptables防火墙 ,执行
vi /etc/sysconfig/iptables
加入下面内容
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
如上配置并重启iptables就可以在局域网内访问8080端口了
在不同Linux系统中,操作指令会有细微的差别,Centos6防火墙相关命令:
service iptables status 查看防火墙状态
service iptables start 开启防火墙
service iptables stop 关闭防火墙
service iptables restart 重启防火墙
对于Centos7系统来说,只有使用下面的指令,才可以对Linux防火墙进行启停。
#查看防火墙开放端口列表命
firewall-cmd --zone=public --list-ports 或 firewall-cmd --list-port 令:
#查看某个端口是否开放 :
firewall -cmd --query-port=8080/tcp
#防火墙开放8080端口 :
firewall-cmd --zone=public --add-port=8080/tcp --permanent#批量开放区间端口:
firewall-cmd --zone=public --add-port=8081-8082/tcp --permanent#防火墙关闭8080端口
firewall-cmd --zone=public --remove-port=8080/tcp --permanent
systemctl status firewalld #查看防火墙状态命令:
systemctl start firewalld #开启防火墙命令:
systemctl stop firewalld #关闭防火墙命令:
systemctl disable firewalld #禁止防火墙开机自启动命令:
systemctl enable firewalld #开启防火窗开机自启动命令:
firewall-cmd --reload#重新加载防火墙命令:
9. 其他一些问题
启动以后,可以利用命令
ps -ef|grep tomcat
查看tomcat是否正常启动。
如果正常启动以后无法访问,可以先不修改8080端口,尝试用8080端口访问。如果可以通过8080端口正常访问,则说明80端口被其他应用占用。
或者使用
netstat -an|grep 8080
命令查看是否有程序占用8080端口。
三、设置tomcat开机自动启动
1. 在 tomcat/bin 目录下面,增加 setenv.sh 配置,服务启动的时候会调用,同时配置java内存参数。
输入命令编辑:
vim /usr/local/tomcat/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"
2. 增加tomcat.service,在/usr/lib/systemd/system目录下增加tomcat.service
输入命令编辑:
vim /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/local/java/jdk1.8.0_221/'Environment='CATALINA_PID=/usr/local/tomcat/tomcat.pid'Environment='CATALINA_HOME=/usr/local/tomcat/'Environment='CATALINA_BASE=/usr/local/tomcat/'Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=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文件,停止之后删除。
ps:同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。
ps:多个tomcat可以配置在多个目录下,使用不同的端口,互不影响。
3. 设置开机自启动
systemctl enable tomcat.service
4. 启动tomcat
systemctl start tomcat.service
5. 在浏览器测试(略)
6. 上述步骤操作完成后如果还是访问不了tomcat服务,可以尝试重启一下linux服务器,命令:reboot
systemctl常用命令
其中.service 可以省略
systemctl daemon-reload
##重新加载一下系统服务命令:(修改脚本后操作)
systemctl list-unit-files --type service
查看全部服务命令:
systemctl status name.service
##查看服务状态
systemctl enable name.service
设置开机自启动
systemctl disable name.service
停止开机自启动
systemctl start name.service
启动服务
systemctl stop name.service
停止服务
systemctl restart name.service
重启服务
版权归原作者 米子哈ooo 所有, 如有侵权,请联系我们删除。