centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法
centos 下安装jdk、tomcat 以及tomcat无法从外部访问的解决办法
昨天在centos下安装了jdk和tomcat,并调试通,之前从Ubuntu下装过,还没有从centos弄过,记录一下安装过程与出现的问题。
首先准备好安装文件,jdk-6u45-linux-i586-rpm.bin apache-tomcat-6.0.41.tar.gz
进入目录
- cd /
- cd opt
- cd soft
新建一个文件夹:jdk
- mkdir jdk
将文件放到该目录下,修改该文件的权限:
- chmod -R 777 jdk-6u45-linux-i586-rpm.bin
执行bin文件的安装命令:
- ./jdk-6u45-linux-i586-rpm.bin
然后等待安装完成即可。
安装过程如图:
至此安装完成,然后需要配置一下环境变量。
环境变量文件在etc下的profile
- cd /
- cd etc
- vi profile
进入该文件后,进入插入模式(摁下 键盘的“i”键)
然后光标移动到最后,在最后插入如下语句:
- export JAVA_HOME=/usr/java/jdk1.6.0_45
- export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
- export PATH=$PATH:$JAVA_HOME/bin
在centos下,安装bin类型的文件其实就像我们在windows下安装可执行文件一样,该文件默认安装到usr的java目录下,就如同windows下默认安装到c://windows/Program Files/java 文件夹一样。
因此上述三行代码就是分别配置
JAVA_HOME
CLASSPATH
PATH
同我们在windows下配置一样。
至此,jdk的安装完成。
tomcat配置。
tomcat的配置比较简单,只要把上面的tar.gz包放到对应的目录下,然后解压即可。gz其实就是压缩包,同我们在windows下的zip之类的一样,对于tomcat,他就是一个免安装版本。
进入对应目录
- cd /
- cd opt
- cd soft
- mkdir tomcat
放入tomcat 并执行解压命令:
- tar -zxvf apache-tomcat-6.0.41.tar.gz
修改bin文件夹的权限
- chmod -R 777 bin
进入bin文件夹
cd bin
启动:
- ./startup.sh
我遇到的问题是:如果没有修改bin的权限,则在敲完star这四个字母然后使用tab键提示的时候,出不来,而且即使手敲完以后,执行,则 no such file or dictinory。修改完权限后则无此问题。
遇到比较麻烦的问题:
1、启动后,在控制台看不到错误信息,只看到配置信息,如 jdk版本之类的信息,可是在本机敲入localhost:8080无法访问,解决办法是,到tomcat的log文件夹下,会有一个Catalina.out 即为tomcat的日志,查看该日志,发现启动信息中报了一个错误:端口被占用,修改即可。
2、解决上述问题后,在本机可以访问,但是在外网无法访问。ping 该机器的ip也可以ping 通,可是敲入ip+端口就是无法访问,排查到最后,发现是 防火前和selinux的问题。最简单的办法:将他们关闭即可。
查看防火墙状态:
- service iptables status
关闭防火墙:
- service iptables stop
查看selinx的状态
- getenforce
发现显示 : enforcing
执行设置为宽容模式也不行,只能完全关闭, 完全关闭后,需要重启Linux系统。
执行完全关闭的方法为:修改对应的文件
该文件为:/etc/sysconfig/selinux
进入该文件
- vi /etc/sysconfig/selinux
将里面这两句:
- SELINUX=enforcing
- SELINUXTYPE=targeted
都注释掉
然后在最后加入这一句
- SELINUX=disabled
修改完成后,该文件内容为:
- #SELINUX=enforcing
- #SELINUXTYPE=targeted
- SELINUX=disabled
然后重启系统
reboot
重启完成后,
手动停止一下 防火墙:
- service iptables stop
启动tomcat, 外部访问,则一切正常。