本次实验主要是安装部署Tomcat,如果能访问tomcat的欢迎首页就说明安装成功了。
第一步安装jdk配置环境变量
用“rz”命令上传jdk的linux安装包时,当前窗口一顿乱码跳动。后来有老哥说rz命令要加参数“-be” ,
使用“rz -be”上传
-b: -binary 用binary的方式上传下载,不解释字符为ascii
-e: -escape 强制escape所有控制字符,比如Ctrl+x,del等。
环境变量的配置
# vim /etc/profile
export JAVA_HOME=/opt/java/jdk/jdk1.8.0_291
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
解压jdk的安装包
tar -zxvf jdk-8u291-linux-x64.tar.gz #解压在当前目录
查看jdk是否安装成功
刚添加完新配置后配置文件不会立即生效,需要立即立即生效可执行“source”命令,否侧只能重启重进系统才有生效
第二步安装tomcat并启动
上传解压tomcat
tomcat的安装,解压安装包(apache-tomcat-8.5.66.tar.gz)即可。
解压命令“tar -zxvf apache-tomcst-8.5.66.tar.gz”
tomcat是用java写的,而且tomcat依赖于jdk环境,所以安装启动tomcat之前必须保证jdk的环境安装配置成功。否则tomcat启动不成功。
无法访问此网站
启动成功后,我访问tomcat的8080端口,结果页面提示:“无法访问此网站”。
于是乎我开始探测10.0.0.201这个ip是否畅通(开始有了一点顺藤摸瓜的排错思想了)
既然10.0.0.201网络是可以访问的,那肯定就不是网络的问题了。
根据我的经验这很有可能是linux的防火墙在捣鬼(哈哈,之前遇到过)。于是我就去查看防火墙了。
查看防火墙状态
查看防火墙状态的命令
systemctl status firewalld.service
关闭防火墙
关闭防火墙的命令
systemctl stop firewalld.service
访问成功了
关闭防火墙之后,tomcat的首页就能访问了
关闭Selinux
后来又在一次tomcat部署中发现导致tomcat首页不能访问的还有可能是Selinux没有关闭。
难怪老王在Sre课程一开始一直强调“防火墙和SELINUX这两个配置一定要关闭,否则后续会导致许多实验不成功”。
#关闭SeLinux
sed -i '/^SELINUX=/c SELINUX=disabled' /etc/selinux/config
哈哈,tomcat小猫你终于出来啦,If you’re seeing this, you’ve successfully installed Tomcat. Congratulations!(看到此页说明你的配置成功了哟)
参考博客:Linux安装 部署tomcat 无法访问此网站
Tomcat检测服务拉起
#!/bin/bash
ps axu |grep '/opt/app/webmgr/apache-tomcat-8.5.66' |grep -v 'grep' &>/dev/null
if [ $? -ne 0 ]
then
echo "准备重启/opt/app/webmgr/apache-tomcat-8.5.66"
/opt/app/webmgr/apache-tomcat-8.5.66/bin/startup.sh
if [ $? -eq 0 ]
then echo "/app/tomcat/apache-tomcat-8.5.66启动成功!"
fi
else
echo "/app/tomcat/apache-tomcat-8.5.66正在运行中"
fi
将上面脚本的路径抽离出来声明成一个路径变量
#!/bin/bash
RUN_PATH=/opt/app/webmgr/apache-tomcat-8.5.66
ps axu |grep "${RUN_PATH}" |grep -v 'grep' &>/dev/null
if [ $? -ne 0 ]
then
echo "准备重启${RUN_PATH}呀"
${RUN_PATH}/bin/startup.sh
if [ $? -eq 0 ]
then echo "${RUN_PATH}启动成功了啊!"
fi
else
echo "${RUN_PATH}正在运行中哦"
fi
#注意grep里引用变量使用双引号
第三版,抽象出监控对象和运行方式
#!/bin/sh
RUN_PATH=/opt/app/webmgr/apache-tomcat-8.5.66
MONITOR_PROCESS=`ps axu |grep "${RUN_PATH}" |grep -v 'grep' |wc -l`
RUN_MODE=${RUN_PATH}/bin/startup.sh
if [ $MONITOR_PROCESS -eq 0 ]
then
echo "测试准备重启${RUN_PATH}"
$RUN_MODE
if [ $? -eq 0 ]
then echo "测试${RUN_PATH}启动成功!"
fi
else
echo "测试${RUN_PATH}正在运行中"
fi