一、Tomcat介绍
目前有很多网站是用Java编写的,所以解析Java程序就必须有相关的软件来完成,Tomcat就是其中之一
Tomcat是Apache软件基金会,的Jakarta项目中的一个核心项目,由apache、sun和其他一些公司及个人共同开发而成,Tomcat技术先进,性能稳定而且免费,因而深受Java爱好者的喜欢,并得到部分开发商的认可,成为目前比较流行的web因公服务器。
Java程序写的网站用Tomcat+jdk来运行的。
tomcat是一个中间件,真正起作用的,解析java脚本是jdk。
jdk(java development kit)是整个Java的核心,它包含了java运行环境的一对java相关的工具以及java基础库。
最主流的jdk为sun公司发布的jdk,初次之外,其实IBM公司也有发布JDK,Centos上也可以用yum安装openjdk。
Tomcat是一个轻量级应用服务器,在中小型系统和并发用户不是很多的场合下普遍被使用,是开发和调试java程序的首选,对于初学者来说,在一台机器上配置好Apache服务器之后,可利用它相应HTML页面的访问请求。
实际上,Tomcat部分是Apache服务器的拓展,但它是独立运行的,所以当你运行Tomcat时,它是作为一个独立的进程运行的。
二、安装JDK
jdk版本1.6,1.7,1.8
一、下载jdk:
官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
不同的操作系统版本使用不同的jdk版本
我使用的是
二、解压jdk:
下载好后,我们可以使用xftp把jdk放到/usr/local/src下
解压jdk压缩包:
[root@lnmp ~]# tar zxvf /usr/local/src/jdk-8u151-linux-x64.tar.gz
三、设置环境变量:
[root@lnmp ~]# vim /etc/profile (在最后加入以下几行)
JAVA_HOME=/usr/local/jdk1.8/
JAVA_BIN=/usr/local/jdk1.8/bin
JRE_HOME=/usr/local/jdk1.8/jre
PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin
CLASSPATH=/usr/local/jdk1.8/jre/lib:/usr/local/jdk1.8/lib:/usr/local/jdk1.8/jre/lib/charsets.jar
执行以下命令,使配置生效:
[root@lnmp ~]# source /etc/profile
检查jdk有没有安装成功,配置是否正确:
[root@lnmp ~]# java -version
如果显示了以下内容,说明配置正确:
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
如果显示的不同,可能系统调用了rpm的openjdk,不要随便卸载它,系统里可能有某一个程序在使用它。我们只需要做一个临时处理就好:
mv /usr/bin/java /usr/bin/java_bak
source /etc/profile
再次执行
[root@lnmp ~]# java -version,显示结果就正常了
三、安装Tomcat
一、安装Tomcat
[root@lnmp src]# cd /usr/local/src/
[root@lnmp src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.24/src/apache-tomcat-8.5.24-src.tar.gz
[root@lnmp src]# tar zxvf apache-tomcat-8.5.24-src.tar.gz
二、启动Tomcat
因为是二进制包,所以免去了编译的过程,启动Tomcat,命令如下:
[root@lnmp bin]# /usr/local/tomcat/bin/startup.sh
在这里,我遇到了2个错误和大家分享一下。
第一个错误:
[root@lnmp bin]# /usr/local/tomcat/bin/startup.sh
-bash: /usr/local/tomcat/bin/startup.sh: 权限不够
这个好解决,我ls -l看了一下bin/的权限,发现所有者没有x执行权限
[root@lnmp tomcat]# ll
总用量 304
drw-r-xr-x. 2 root root 4096 12月 26 13:49 bin
用下面这条命令则可以解决:
[root@lnmp tomcat]# chmod -R u+x bin/
第二个错误:
[root@lnmp bin]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
touch: 无法创建"/usr/local/tomcat/logs/catalina.out": 没有那个文件或目录
/usr/local/tomcat/bin/catalina.sh:行464: /usr/local/tomcat/logs/catalina.out: 没有那个文件或目录
报错没有logs目录,则建立一个就好。
[root@lnmp bin]# mkdir /usr/local/tomcat/logs
[root@lnmp bin]# /usr/local/tomcat/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/local/jdk1.8
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.
再次启动时,提示启动成功。
关闭服务用的命令是:
[root@lnmp bin]# /usr/local/tomcat/bin/shutdown.sh
Tomcat不支持restart,修改配置文件前要关闭,修改完后再开就好。
三、查看服务是否启动成功以及调用的端口。
[root@lnmp src]# ps aux |grep tomcat
root 3144 45.4 8.0 2296132 81524 pts/0 Sl 14:25 0:05 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root 3188 0.0 0.0 112680 976 pts/0 R+ 14:25 0:00 grep --color=auto tomcat
[root@lnmp src]# netstat -lntp |grep java
tcp6 0 0 :::8080 :::* LISTEN 3144/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 3144/java
tcp6 0 0 :::8009 :::* LISTEN 3144/java
这里需要记住的是三个端口号,8080为提供web服务的端口,8005为管理端口,8009端口位第三方服务调用的端口,比如httpd和Tomcat结合时会用到。
四、在浏览器上测试。
为了方便起见,我们关闭防火墙。
[root@lnmp src]# systemctl stop firewalld
四、配置Tomcat监听80端口
默认直接输入ip访问的是80端口,Tomcat访问的是8080端口,如果想修改为80,则需要修改server.xml文件。
[root@lnmp src]# vim /usr/local/tomcat/conf/server.xml
找到<Connector port="8080" protocol="HTTP/1.1"
修改为<Connector port="80" protocol="HTTP/1.1"
修改完后重启服务:(我们发现监听80端口的是nginx)
[root@lnmp src]# /usr/local/tomcat/bin/shutdown.sh
[root@lnmp src]# /usr/local/tomcat/bin/startup.sh
[root@lnmp src]# netstat -lntp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1232/nginx: master tcp6 0 0 :::8009 :::* LISTEN 3401/java
遇到这种情况,我们把nginx关闭,把tomcat重新启动,然后在观察
[root@lnmp src]# systemctl stop nginx
[root@lnmp src]# /usr/local/tomcat/bin/shutdown.sh
[root@lnmp src]# /usr/local/tomcat/bin/startup.sh
[root@lnmp src]# netstat -lntp |grep 80
tcp6 0 0 :::80 :::* LISTEN 3401/java tcp6 0 0 :::8009 :::* LISTEN 3401/java 此时我们又发现,没有8005端口,因为从新启动后,8005作为管理端口会启动的较慢。
在8005没有启动时我们用浏览器直接去访问时很慢的,因为他要等8005启动后。