1、Tomcat介绍html
目前有不少网站是用Java编写的,因此解析Java程序就必须有相关的软件来完成,Tomcat就是其中之一java
Tomcat是Apache软件基金会,的Jakarta项目中的一个核心项目,由apache、sun和其余一些公司及我的共同开发而成,Tomcat技术先进,性能稳定并且免费,于是深受Java爱好者的喜欢,并获得部分开发商的承认,成为目前比较流行的web因公服务器。linux
Java程序写的网站用Tomcat+jdk来运行的。
nginx
tomcat是一个中间件,真正起做用的,解析java脚本是jdk。web
jdk(java development kit)是整个Java的核心,它包含了java运行环境的一对java相关的工具以及java基础库。apache
最主流的jdk为sun公司发布的jdk,初次以外,其实IBM公司也有发布JDK,Centos上也能够用yum安装openjdk。bootstrap
Tomcat是一个轻量级应用服务器,在中小型系统和并发用户不是不少的场合下广泛被使用,是开发和调试java程序的首选,对于初学者来讲,在一台机器上配置好Apache服务器以后,可利用它相应HTML页面的访问请求。vim
实际上,Tomcat部分是Apache服务器的拓展,但它是独立运行的,因此当你运行Tomcat时,它是做为一个独立的进程运行的。浏览器
2、安装JDKtomcat
jdk版本1.6,1.7,1.8
1、下载jdk:
官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
不一样的操做系统版本使用不一样的jdk版本
我使用的是
2、解压jdk:
下载好后,咱们可使用xftp把jdk放到/usr/local/src下
解压jdk压缩包:
[root@lnmp ~]# tar zxvf /usr/local/src/jdk-8u151-linux-x64.tar.gz
3、设置环境变量:
[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,显示结果就正常了
3、安装Tomcat
1、安装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
2、启动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,修改配置文件前要关闭,修改完后再开就好。
3、查看服务是否启动成功以及调用的端口。
[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结合时会用到。
4、在浏览器上测试。
为了方便起见,咱们关闭防火墙。
[root@lnmp src]# systemctl stop firewalld
4、配置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启动后。