Tomcat 搭建配置

① Tomcat介绍

(1)简介

Tomcat是Apache软件基金会( Apache Software Foundation )的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。

Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。目前有很多网站是用Java编写的,所以解析Java程序就必须有相关的软件来完成,Tomcat就是其中之一。

Java程序写的网站用Tomcat+JDK来运行
Tomcat是一个中间件,真正起作用的,解析Java脚本的是JDK。

JDK(Java Development Kit)是整个Java的核心,它包含了Java运行环境和一堆Java相关的工具以及Java基础库。

2).关闭防火墙并设置开机不自启,配置SElinux规则

[root@tomcat ~]# systemctl stop firewalld.service
[root@tomcat ~]# systemctl disable firewalld.service
 Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
 Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@tomcat ~]# setenforce 0

3).修改主机名

[root@localhost ~]# hostnamectl set-hostname tomcat
//修改完后,重新连接
 [root@tomcat ~]#

② 安装 jdk

1).JDK的下载和安装

[root@tomcat src]# cd /usr/local/src/
[root@tomcat src]# tar -zxvf jdk-8u261-linux-x64.tar.gz  //解压
[root@tomcat src]# mv jdk1.8.0_261/ /usr/local/jdk1.8 移动到/usr/local/目录下改名为jdk1.8
[root@tomcat src]# ls /usr/local/
  bin  etc  games  include  jdk1.8  lib  lib64  libexec  sbin  share  src

2).修改环境变量

设置环境变量,编辑/etc/profile文件,并使其立即生效

 [root@tomcat src]# vi /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@tomcat src]# source /etc/profile

3).检查JDK安装情况

1).使用java -version命令检查是否安装成功,如果显示结果带有java version "1.8.0_211"字样和我们解压的jdk-8u211-linux-x64.tar.gz包的版本相对应,则证明安装成功。

 [root@tomcat src]# java -version
   java version "1.8.0_261"
   Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
   Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
  [root@tomcat src]# 

2).这里有可能出现的不是上面的这种,而是如下所示:

[root@tomcat src]# java -version
  openjdk version "1.8.0_242"
  OpenJDK Runtime Environment (build 1.8.0_242-b08)
  OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)

如果发现不是自己安装的JDK,这是因为系统自带OpenJDK或者以前安装过OpenJDK。使用witch命令,查看现在Java的所在目录:

[root@tomcat src]# which java
  /usr/bin/java

如果结果为/usr/bin/java则说明这是系统自带的OpenJDK。这时,我们为了实验的一致性,把原来的Java目录重命名为java_bak,并使用source命令再次使环境变量生效,然后使用java -verison命令查看是否有java version "1.8.0_211"字样,命令如下:

 [root@tomcat src]# mv /usr/bin/java /usr/bin/java_bak
 [root@tomcat src]# source /etc/profile
 [root@tomcat src]# java -version
   java version "1.8.0_211"
   Java(TM) SE Runtime Environment (build 1.8.0_211-b12)
   Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode)

③ 安装Tomcat

1).安装Tomcat

 [root@tomcat ~]# cd /usr/local/src/
 [root@tomcat src]# tar zxf apache-tomcat-9.0.21.tar.gz 
 [root@tomcat src]# mv apache-tomcat-9.0.21  /usr/local/tomcat

2).启动Tomcat

本次下载解压的包是二进制包,不用我们去编译,使用/usr/local/tomcat/bin/startup.sh这个命令启动Tomcat

[root@tomcat src]# /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
  Using CATALINA_OPTS:   
  Tomcat started.
 [root@tomcat src]# 

3).测试

用netstat命令来监听java相关服务端口,查看是否有以下端口存在(8009、8080、8005),如果存在则证明Tomcat服务启动成功.

 [root@tomcat src]# netstat -lnpt | grep java 
  tcp6       0      0 :::8009                 :::*                    LISTEN      49228/java          
  tcp6       0      0 :::8080                 :::*                    LISTEN      49228/java          
  tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      49228/java  

三个端口8009、8005和8080的意义:

8080为提供Web服务的端口
8005为管理端口
8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到

④ 配置Tomcat监听80端口

1).修改配置文件

Tomcat 监听的是8080端口,如果想要直接访问,不加8080端口(默认输入一个IP或者域名,访问80端口时是可以省略IP后端口号的)就需要配置Tomcat监听80端口,Tomcat是支持端口自定义的。

 [root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml 
  //直接搜索8080找到如下内容
  
 <Connector port="8080" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443" />
  //将这里的8080直接改成80

修改完配置文件,接下来就是重启Tomcat服务,Tomcat服务是不支持restart的方式重启服务的,所以要想重启服务必须先关闭服务

[root@tomcat src]# /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
  Using CATALINA_OPTS:   
 [root@tomcat src]# 
 [root@tomcat src]# /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
  Using CATALINA_OPTS:   
  Tomcat started.
 [root@tomcat src]# 

2).测试

重启服务之后,我们用netstat命令监听Java相关服务端口来查看是否启动成功

[root@tomcat ~]# netstat -plnt | grep java
 tcp6       0      0 :::8009                 :::*                    LISTEN      47709/java          
 tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      47709/java         

这里可以看到,并没有80端口出现,这是因为这台机器我们之前安装过LNMP。Nginx的默认端口也是80,这就和我刚刚设置的Tomcat端口发生冲突。这时,我们需要关闭Nginx服务,重新启动Tomcat服务。

[root@tomcat ~]# service nginx stop
  Stopping nginx (via systemctl):  [  OK  ] 
 //出现OK字样,Nginx服务关闭成功。
[root@tomcat ~]# /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@tomcat ~]# /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.

这时,我们再次使用netstat命令监听Java相关服务端口,看这次三个端口是否存在,命令结果如下:

[root@tomcat ~]# netstat -plnt | grep java
  tcp6       0      0 :::8009                 :::*                    LISTEN      47873/java          
  tcp6       0      0 :::80                   :::*                    LISTEN      47873/java          
  tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      47873/java          

可以看到这次三个服务端口都存在,证明Tomcat服务启动成功。

3).浏览器访问

配置文件修改完成,并Tomcat服务启动成功后,打开浏览器在地址栏中输入http://192. 168.20.15/(注意你的IP),这时又会看见Tomcat默认页面。

⑤ 配置Tomcat虚拟主机

1).查看默认虚拟主机

Tomcat和Apache、Nginx一样,都支持虚拟主机配置。每个虚拟主机配置文件就是一台服务器,支持一个IP下可以访问多个域名,每个域名代表一个网站。所以一台服务器上可以配置多个网站。

编辑Tomcat配置文件,直接在配置文件内搜索Host,找到如下内容:

 [root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml 
  ......
<Host name="localhost"  appBase="webapps"
  unpackWARs="true" autoDeploy="true">

<!-- SingleSignOn valve, share authentication between web applications
  Documentation at: /docs/config/valve.html -->
<!--
  <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
  Documentation at: /docs/config/valve.html
  Note: The pattern used is equivalent to using pattern="common" -->
<Valve className="org.apache.catalina.valves.AccessLogValve" 	directory="logs"
  prefix="localhost_access_log" suffix=".txt"
  pattern="%h %l %u %t &quot;%r&quot; 

Host和/Host之间的配置为虚拟主机配置部分

  • name定义域名
  • appBase定义应用的目录
  • unpackWARs为是否自动解压war包
  • autoDeploy 如果此项设置为true,表示Tomcat服务处于运行状态,能够检测appbase下的文件,如果有新的Web应用加入进来,会自动发布这个Web应用。

Java的应用通常是一个JAR的压缩包,你只需要将JAR的压缩包放到appBase目录下面即可。刚刚我访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。

2).新增虚拟主机

新增虚拟主机,编辑server.xml在下面增加以下内容:

[root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml 
  ......     
 <Host name="www.123.cn" appBase=""
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
  </Host>

docBase这个参数用来定义网站的文件存放路径。如果不定义,默认是在appBase/ROOT下面。定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多人会遇到过访问404的问题,其实就是docBase没有定义对。

appBase为应用存放目录(实际上是一个相对路径,相对于 /usr/local/tomcat/ 路径),通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录。

搭建了一个Tomcat,想要使用Tomcat去跑一个网站。首先应用不能是一个传统所谓的目录(Apache、Nginx访问网站,首先需要指定一个目录,目录里存放着PHP文件或者是Html的文件,然后去访问),Tomcat需要提供一个war的包,就是一个压缩包,这个压缩包里面包含着运行这个网站的一些文件,包括配置,js代码,数据库相关的等等,都需要打包成war这种文件,而这个文件需要放置到 webapps 里面。

3).appBase部署Java应用

下载地址:http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

[root@tomcat src]# pwd
  /usr/local/src
[root@tomcat src]# ls |grep zrlog
  zrlog-1.7.1-baaecb9-release.war

appBase支持自动解压,所以直接将war包拷贝到/usr/local/tomcat/webapps/目录下:

[root@tomcat src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
[root@tomcat src]#  ls /usr/local/tomcat/webapps/
  docs          manager                      zrlog-1.7.1-baaecb9-release.war
  examples      ROOT
  host-manager  zrlog-1.7.1-baaecb9-releas      
 // 将war包拷贝到/usr/local/tomcat/webapps/目录下之后,包会自动解压。(前提是tomcat正常启动)

重命名war包的文件名,命令如下:

[root@tomcat src]# cd /usr/local/tomcat/webapps/
[root@tomcat webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
[root@tomcat webapps]# ls
 docs      host-manager  ROOT   zrlog-1.7.1-baaecb9-release.war
 examples  manager       zrlog
[root@tomcat webapps]# rm zrlog-1.7.1-baaecb9-release.war 
  rm: remove regular file ‘zrlog-1.7.1-baaecb9-release.war’? y
  [root@tomcat webapps]# ls
  docs      host-manager  ROOT   zrlog-1.7.1-baaecb9-release
  examples  manager       zrlog  zrlog-1.7.1-baaecb9-release.war
 // 一但重命名或删除war包解压后的包的文件时,war包就会在解压出一个文件夹。

用浏览器访问http://192. 168.174.155/zrlog(注意你的IP)

在这里插入图片描述

在数据库中创建一个zrlog数据库和zrlog用户

[root@tomcat webapps]# /usr/local/mysql/bin/mysql
 Welcome to the MySQL monitor.  Commands end with ; or \g.
 Your MySQL connection id is 1
 Server version: 5.6.39 MySQL Community Server (GPL)
 Copyright (c) 2000, 2018, 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.00 sec)

 mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by '000000';   //创建zrlog用户
 Query OK, 0 rows affected (0.05 sec)  
 mysql>exit	//退出数据库
  Byebye

检查创建用户是否可以登陆数据库,使用zrlog用户登录,命令如下:

[root@tomcat webapps]# /usr/local/mysql/bin/mysql -u zrlog -h 127.0.0.1 -p000000
 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 2
 Server version: 5.6.39 MySQL Community Server (GPL)

 Copyright (c) 2000, 2018, 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> show databases;	//检查已有数据库
  +--------------------+
  | Database           |
  +--------------------+
  | information_schema |
  | test               |
  | zrlog              |
  +--------------------+
  3 rows in set (0.00 sec)
  mysql> exit
  Byebye

检查完成,zrlog用户登录成功

在这里插入图片描述

设置管理员账号(admin)和管理员密码(123456),网站标题和子标题按需填写,本次自定义内容(网站标题:“测试”,网站子标题:“linux”)

在这里插入图片描述
填写完成后,单击“下一步”按钮,可以看到安装完成的界面。如图所示:

在这里插入图片描述
单击“点击查看”按钮,我们就可以进入搭建好的zrlog页面了。

还可以尝试撰写文章

我们也可以进入管理页面,写一些文章,单击上图主菜单栏中的“管理”按钮,跳转页面如图所示:

在这里插入图片描述
输入安装向导里已经设置好的账户名和密码(admin:000000),单击“登录”按钮,登录成功页面,如图所示:

在这里插入图片描述
单击“文章撰写”栏目,写上自己想写的内容,然后保存,如图所示:

在这里插入图片描述
然后回到主页面,你就可以看到刚才你写的内容。

在这里插入图片描述
4).ocBase部署Java应用

我们在浏览器访问zrlog需要指定IP地址加目录,那么如何才能输入IP直接访问该目录呢?

查看虚拟主机docBase的路径,结果如下:

[root@tomcat ~]# vi /usr/local/tomcat/conf/server.xml 
 ......     
 <Host name="www.123.cn" appBase=""
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
  </Host>
//docBase 定义的目录为:/data/wwwroot/123.cn

创建docBase目录,命令如下:

[root@tomcat ~]# mkdir -p /data/wwwroot/123.cn/
[root@tomcat webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

在Windows下绑定hosts文件

hosts文件路径:C:\Windows\System32\drivers\etc
 在文件下面添加
192.168.10.24 www.123.cn

测试

打开命令提示符(CMD),用ping命令ping www.123.cn 看IP是否为虚拟机IP,如果是的话,现在就可以访问了

域名去访问zrlog页面,由于之前配置完虚拟主机后,并没有重启服务,这里要重启一下服务。命令如下:

[root@tomcat webapps]# /usr/local/tomcat/bin/shutdown.sh 
[root@tomcat webapps]# /usr/local/tomcat/bin/startup.sh 

重启Tomcat服务完成后,打开浏览器在地址栏输入www.123.cn,就可以看到zrlog的首页。

⑥ Tomcat日志

1).查看日志

Tomcat在应用过程中,难免会出现错误,如何去查看这些错误,这就需要查看Tomcat的日志。Tomcat日志存放在/usr/local/tomcat/logs/目录下。命令如下:

[root@tomcat ~]# ls /usr/local/tomcat/logs/
 catalina.2020-03-29.log      localhost.2020-03-29.log
 catalina.out                 localhost_access_log.2020-03-29.txt
 host-manager.2020-03-29.log  manager.2020-03-29.log
  • catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。
  • catalina.2020-xx-xx.logcatalina.out内容相同,前者会每天生成一个新的日志。
  • host-managermanager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
  • localhostlocalhost-access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。

2).配置生成日志

由于日志默认不会生成,需要在server.xml中配置一下。所以接下来配置新增虚拟主机的访问日志,具体方法是在对应虚拟主机的里面加入下面的配置(我们用www.123.cn来进行配置),编辑以下配置文件server.xml,命令如下:

[root@tomcat ~]# vi /usr/local/tomcat/conf/server.xml 
 ......
   <Host name="www.123.cn" appBase=""
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
   
 <Valve className="org.apache.catalina.valves.AccessLogValve."
           directory="logs"
           prefix="123.cn_access" suffix=".log"
           pattern="%h %l %u %t &quot;%r&quot;%s %b"/>
  </Host>
   ......
  • valve为日志文件配置
  • prefix定义访问日志的前缀
  • suffix定义日志的后缀
  • pattern定义日志格式

注意:新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。

配置完成后,重启Tomcat服务

[root@tomcat ~]# vi /usr/local/tomcat/conf/server.xml 
 ......
  <Host name="www.123.cn" appBase=""
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
   
 <Valve className="org.apache.catalina.valves.AccessLogValve."
           directory="logs"
           prefix="123.cn_access" suffix=".log"
           pattern="%h %l %u %t &quot;%r&quot;%s %b"/>
  </Host>
   ......

重启Tomcat服务完成后,访问网站,查看/usr/local/tomcat/logs目录下是否有日志生成,并且查看生成的日志信息,命令如下:

[root@tomcat ~]# ls /usr/local/tomcat/logs/
 123_access_log.2020-03-29.txt  localhost.2020-03-29.log
 catalina.2020-03-29.log        localhost_access_log.2020-03-29.txt
 catalina.out                   manager.2020-03-29.log
 host-manager.2020-03-29.log
[root@tomcat ~]# cat /usr/local/tomcat/logs/123_access_log.2020-03-29.txt 
 192.168.10.1 - - [29/Mar/2020:22:06:16 -0700] "GET / HTTP/1.1" 200 8645
 192.168.10.1 - - [29/Mar/2020:22:06:16 -0700] "GET //favicon.ico HTTP/1.1" 200 9662
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值