一.Liunx中ubunu下Tomcat可以启动但是不能访问解决:
前题:你的Tomcat的端口号是8080
首先第一步看:ping本地网络
Ping 172.16.0.4
能通进行下一步ping外网
Ping www.baidu.com
也能通继续下一步查看防火墙设置ufw status
Inactive代表着关闭 active代表着打开 如果你的是打开的你可以使用以下命令关闭
ufw disable
打开防火墙:ufw enable
其他防火墙命令:ufw default allow/deny外来命令允许/拒绝
ufw allow 8080允许访问8080端口
ufw delete allow/deny 8080删除以前定义的”允许/访问8080”的规则
以上没有问题进行下一步curlhttp://172.16.0.4:8080172.16.0.4(是你的私网IP) 这个时候可以访问 但是 curl http://106.13.229.128106.13.229.128(是你的公网IP)这个时候不能访问
那么问题很简单出现在了你没有允许访问8080端口,执行以下命令设置防火墙:
ufw allow 8080/tcp会出现以下页面
或者出现图形化界面,如果出现图形化界面,你就直接按照上面的提示直接做就行了
但是如果你在访问内网(私网)时出现问题访问不通:比如
那么你首先需要去日志里面检查你的Tomcat究竟是否真的启动完整了
cd /usr/tomcat/apache-tomcat-7.0.96/logs/这个切换到你的Tomcat的logs文件夹每个人路径不同,不要直接和我的一样,然后在logs下寻找catalina.out这个文件,打开它
cat catalina.out
你出现的是类似这样的代码的话,请按以下方法逐一解决:
首先我们需要重新安装Tomcat:
(卸载Tomcat,直接删除Tomcat的安装目录和文件就行了)
1.找到一个你朋友或者可靠来源完整的Tomcat的压缩吧并上传至你的Ubuntu的usr文件下
然后解压:tar zxvf apache-tomcat-7.0.94.tar.gz
修改名称:mv apache-tomcat-7.0.94 tomcat7
切换文件夹:cd /usr/tomcat7/bin编辑catalina.sh文件,插入以下代码
#此处依你的jdk安装目录而定
JAVA_HOME=/usr/java/jdk1.8.0_181
2. 配置Tomcat(编辑Tomcat自启脚本)
cd /etc/init.d
touch tomcat7
编辑tomcat7 vim tomcat7增加以下内容:
#!bin/sh
### BEGIN INIT INFO
# Provides:sunxue
# Required-Start:$test.sh
# Required-Stop:$test.sh
# Default-Start:2 3 4 5
# Default-Stop:0 1 6
# Short-Description: tomcat start
# Description: tomcat7 start daemon
### END INIT INFO
CATALINA_HOME=/usr/tomcat7(自己的)
JAVA_HOME=/usr/java/jdk1.8.0_181 (自己的)
在这个里面 test.sh是一个脚本,Required-Start和 Required-Stop意思分别是在启动/关闭 tomcat7脚本是需要先启动/关闭test.sh脚本
test.sh可以就放在init.d文件夹下面,与tomcat7是同一个目录,以下是test.sh脚本内容
#! /bin/bash
## This is my first shell script
## Writen by Aming 2019-09-23
date
echo "Hello tomcat
保存后退出tomcat7设置成可执行:
chmod +x /etc/init.d/tomcat7
将Tomcat加入服务:
updat-rc.d tomcat7 defaults
3. 在执行上面的内容中你可能会遇到以下问题:
(1) insserv: missing valid name for `Provides:' please add.
这句话的意思是说:请添加provides,意思是要你设置一个名称,同时在所有冒号后面不要留空,留空也可能会出现以上问题
(2) insserv: warning: current start runlevel(s) (2 3 4 5) of script `tomcat7' overrides LSB defaults (empty).
insserv: warning: current stop runlevel(s) (0 1 6) of script `tomcat7' overrides LSB defaults (empty).
这个问题是说LSB默认值为空,也是在冒号后面有空白的问题
(3)insserv: script mysqld: service mysql already provided!
这个问题是说明你里面么mesql的脚本有重复现象,一个是mysql,一个是mysqld与你写tomcat7没有关系
(4)置于Short-Description是前置说明的意思:也就是你打的备注,提醒自己这个脚本是什么东西
4. 启动tomcat7服务
service tomcat7 start //启动
service tomcat7 restart //重启
service tomcat7 stop //停止
5. 启动Tomcat
切换到cd /usr/tomcat7/bin目录下执行以下命令
./startup.sh
如果出现
Cannot find /usr/tomcat/apache-tomcat-7.0.96/bin/setclasspath.sh
This file is needed to run this program
说明你之前卸载服务器的时候,你没有修改/etc/profile这个文件里面CATALIAN_HOME=/usr/tomcat 环境变量,或者说你修改了,但是没有使文件生效,下面使文件生效的命令
source /etc/profile
使用这个命令后等一会儿就继续执行./startup.sh 不要立即执行,出现下面内容表示成功:
6. 在这个时候我们输入curlhttp://172.16.0.4:8080
curl http://106.13.219.148:8080
都会出来以上内容,说明Tomcat部署成功