一、Tomcat简介

Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
Tomcat是一个轻量级应用服务器。
java程序写的网站用tomcat+jdk来运行。
tomcat是一个中间件,真正起作用的,解析java脚本的是jdk。
jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库。
最主流的jdk为sun公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk。

二、安装JDK

安装Tomcat的前提是安装好JDK。
官方下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
选择与系统相对应的版本:
Tomcat配置_第1张图片Tomcat配置_第2张图片
下载完成之后可以使用lrzsz工具或者xftp工具传送至CentOS/usr/local/src目录下。

[root@zlinux src]# cd
[root@zlinux ~]# cd /usr/local/src
[root@zlinux src]# rz                        //选择JDK压缩包
[root@zlinux src]# ls
jdk-8u161-linux-x64.tar.gz                 nginx-1.12.2         php-5.6.30
mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz  nginx-1.12.2.tar.gz  php-5.6.30.tar.bz2
[root@zlinux src]# tar zxf jdk-8u161-linux-x64.tar.gz
[root@zlinux src]# mv jdk1.8.0_161 /usr/local/jdk1.8
[root@zlinux src]# 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@zlinux src]# source /etc/profile
[root@zlinux src]# java -version            //检查设置是否正确,显示以下内容则说明配置正确
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

三、安装Tomcat

[root@zlinux src]# wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-8/v8.5.29/bin/apache-tomcat-8.5.29.tar.gz        //如果觉得版本不合适可去官网自行下载
[root@zlinux src]# /usr/local/tomcat/bin/startup.sh                //启动tomcat,因为是二进制包,免去编译过程
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@zlinux src]# ps aux |grep tomcat                 //查看是否有tomcat相关进程
root       2441 12.9  4.0 2480652 75984 pts/0   Sl   18:47   0:02 /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       2458  0.0  0.0 112680   972 pts/0    R+   18:48   0:00 grep --color=auto tomcat
[root@zlinux src]# netstat -lntp | grep java     
tcp6       0      0 :::8080                 :::*                    LISTEN      2441/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2441/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2441/java  
#端口8080:提供web服务的
#端口8005:管理端口
#端口8009:第三方服务调用端口(如:httpd和Tomcat结合时会用到)

在浏览器中查看:
Tomcat配置_第3张图片

四、配置Tomcat服务的访问端口

[root@zlinux ~]# vim /usr/local/tomcat/conf/server.xml     //找到下面内容,port改为80

    

[root@zlinux ~]# /usr/local/tomcat/bin/shutdown.sh          //重启tomcat,需要先关闭在启动,没有单独重新启动的脚本
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
[root@zlinux ~]# /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.

配置好之后,再次访问就不需要加端口号了:
Tomcat配置_第4张图片
这里测试完还是改为8080端口
如果80端口被占用,可以停止占用80端口的服务(前提是没有服务在80上面跑),否则不可随意切换端口。如果是Nginx占用80端口,可以使用Nginx代理功能。
下图为nginx代理8080端口:
Tomcat配置_第5张图片

五、Tomcat的虚拟主机

Tomcat也有虚拟主机这一概念,下面部署一个简单博客来了解虚拟主机的配置。

1、修改配置文件

[root@zlinux ~]# vim /usr/local/tomcat/conf/server.xml     //添加以下内容

      #unpackWARs自动解压war包
      
      
      

Tomcat配置_第6张图片

2、下载zrlog并配置

[root@zlinux ~]# cd /usr/local/src/
[root@zlinux src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
[root@zlinux src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@zlinux src]# ls /usr/local/tomcat/webapps/                          //已经自动解压
docs      host-manager  ROOT                         zrlog-1.7.1-baaecb9-release.war
examples  manager       zrlog-1.7.1-baaecb9-release
[root@zlinux webapps]# mv zrlog-1.7.1-baaecb9-release zrlog             //修改名字
[root@zlinux webapps]# ls
docs  examples  host-manager  manager  ROOT  zrlog  zrlog-1.7.1-baaecb9-release.war

3、使用浏览器访问

Tomcat配置_第7张图片

4、配置数据库

在上一步骤当中,zrlog需要连接数据库,那么我们需要创建zrlog使用的数据库。

[root@zlinux ~]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database zrlog;                      //创建zrlog数据库
Query OK, 1 row affected (0.01 sec)

mysql> grant all on zrlog.* to 'zrlog'@'127.0.0.1' identified by '123456';                //创建zrlog用户
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@zlinux ~]# mysql -uzrlog -p123456 -h127.0.0.1     //验证是否创建成功
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

在页面填入数据库相关信息:
Tomcat配置_第8张图片
然后下一步,填写信息:
Tomcat配置_第9张图片
然后重新输入网址查看:
Tomcat配置_第10张图片
至此博客搭建完成。

5 、配置直接访问网址查看博客

Tomcat配置_第11张图片
之前已经添加过配置。

[root@zlinux vhost]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/tctest/     //博客下的文件全部移至网站存放路径
[root@zlinux vhost]# /usr/local/tomcat/bin/shutdown.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
[root@zlinux vhost]# /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.

因为在之前配置了nginx代理,所以直接输入网址直接跳到博客:
Tomcat配置_第12张图片

六、Tomcat日志

[root@zlinux vhost]# ls /usr/local/tomcat/logs/
catalina.2018-03-30.log  host-manager.2018-03-30.log  localhost_access_log.2018-03-30.txt
catalina.out             localhost.2018-03-30.log     manager.2018-03-30.log

其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。
其中catalina.2017-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。
host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
访问日志默认不会生成,需要在server.xml中配置一下。