文章目录
-
- Tomcat介绍
- 安装JDK
- 安装Tomcat
-
- 配置Tomcat监听80端口
-
- 配置Tomcat虚拟主机
-
-
- 查看默认虚拟主机
- 新增虚拟主机
- appBase部署Java应用
- ocBase部署Java应用
- Tomcat日志
-
Tomcat介绍
- 简介
Tomcat是Apache软件基金会( Apache Software Foundation )的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。受Java爱好者的喜爱,并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。
Tomcat服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。目前有很多网站是用Java编写的,所以解析Java程序就必须有相关的软件来完成,Tomcat就是其中之一。
Java程序写的网站用Tomcat+JDK来运行。
Tomcat是一个中间件,真正起作用的,解析Java脚本的是JDK。
JDK(Java Development Kit)是整个Java的核心,它包含了Java运行环境和一堆Java相关的工具以及Java基础库。最主流的JDK为Sun公司发布的JDK,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装OpenJDK。
- 环境准备
- 规划节点,本次实验为单节点部署:
![在这里插入图片描述](http://img.e-com-net.com/image/info8/d8a3f8a3c39a486b814adafb71982ed7.png)
使用VMWare Workstation软件安装CentOS 7.2操作系统,镜像使用提供的CentOS-7-x86_64-DVD-1511.iso。
- 关闭防火墙并设置开机不自启,配置SElinux规则。
![在这里插入图片描述](http://img.e-com-net.com/image/info8/56dbd0f3564f49ddae1e2bf31e2d9e38.png)
- 修改主机名
使用hostnamectl命令修改主机名,命令如下:
- # hostnamectl set-hostname tomcat
// 修改完后Ctrl+D退出后重新连接
![在这里插入图片描述](http://img.e-com-net.com/image/info8/4090561185b84c919e9597440b7be60a.png)
安装JDK
-
JDK的下载
官网下载地址:
http://www.oracle. com/echnetwork/java/javase/downloads/jdk8-downloads-
2133151.html
这个下载地址不能在Linux虚拟机里使用wget命令下载,只能先通过浏览器下载到本机上,然后再上传到Linux。本次下载的版本为jdk1.8,将虚拟机连接CRT,通过CRT上传JDK到/usr/local/src/目录下。
-
JDK安装
部署Tomcat环境需要JDK软件环境,我们进入到/usr/local/src/目录下,解压刚刚上传的jdk-8u211-linux-x64.tar.gz,并将解压后的文件移动到/usr/local/目录下改名为jdk1.8。然后使用ls命令查看下/usr/local/目录下是否有jdk1.8目录。
-
命令如下:
[root@tomcat ~]# cd /usr/local/src/
[root@tomcat src]# tar zxf jdk-8u281-linux-x64.tar.gz
[root@tomcat src]# mv jdk1.8.0_281/ /usr/local/jdk1.8
[root@tomcat src]# ls /usr/local/
![在这里插入图片描述](http://img.e-com-net.com/image/info8/b2bea164aeae4c9e99f36c85806b7ef7.png)
-
修改环境变量
设置环境变量,编辑/etc/profile文件,并使其立即生效。
-
[root@tomcat 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@tomcat src]# source /etc/profile
-
检查JDK安装情况
配置完成环境变量后,使用java -version命令检查是否安装成功,如果显示结果带有java version "1.8.0_211"字样和我们解压的jdk-8u211-linux-x64.tar.gz包的版本相对应,则证明安装成功。命令如下:
-
[root@tomcat src]# java -version
![Tomcat搭建配置_第1张图片](http://img.e-com-net.com/image/info8/df8146052fed4beaa4b15f214c84de5f.png)
-
这里有可能出现的不是上面的这种,而是如下所示:
[root@tomcat src]# java -version
![在这里插入图片描述](http://img.e-com-net.com/image/info8/e72f410d9a424f0abd4bda7fe77ccd64.png)
-
如果发现不是自己安装的JDK,这是因为系统自带OpenJDK或者以前安装过OpenJDK。使用witch命令,查看现在Java的所在目录:
[root@tomcat src]# which java
![在这里插入图片描述](http://img.e-com-net.com/image/info8/9e72978d915d4d7da4229fdb2ddfcc46.png)
-
如果结果为/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
![在这里插入图片描述](http://img.e-com-net.com/image/info8/2575b5b92a334192b6f7353e2da67d40.png)
安装Tomcat
安装Tomcat
-
官网下载地址:http://tomcat.apache.org/
我们去官网下载合适的Tomcat版本,本案例已经下载好了,使用CRT上传到虚拟机/usr/local/src/目录下,然后解压,将解压后的文件移动到/usr/local目录下,并命名为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
启动Tomcat
- 本次下载解压的包是二进制包,不用我们去编译,使用/usr/local/tomcat/bin/startup.sh这个命令启动Tomcat,命令如下:
- [root@tomcat local]# /usr/local/tomcat/bin/startup.sh
![Tomcat搭建配置_第2张图片](http://img.e-com-net.com/image/info8/0db82e3a6f6b4d2b99d2f0f6420b256b.png)
测试
-
用netstat命令来监听java相关服务端口,查看是否有以下端口存在(8009、8080、8005),如果存在则证明Tomcat服务启动成功。命令如下:
[root@tomcat src]# netstat -lnpt | grep java
-
三个端口8009、8005和8080的意义:
8080为提供Web服务的端口;
8005为管理端口;
8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到。
-
然后打开浏览器,在地址栏中输入http://IP:8080/(这里的IP为你虚拟机的IP地址,此处IP为192.168.31.136),可以看到Tomcat的默认页面。如图所示:
![Tomcat搭建配置_第3张图片](http://img.e-com-net.com/image/info8/da3a3b260fa347c7b0ee507a7552be5a.jpg)
配置Tomcat监听80端口
修改配置文件
-
Tomcat 监听的是8080端口,如果想要直接访问,不加8080端口(默认输入一个IP或者域名,访问80端口时是可以省略IP后端口号的)就需要配置Tomcat监听80端口,Tomcat是支持端口自定义的。
编辑Tomcat配置文件server.xml,命令如下:
-
[root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml
//直接搜索8080找到如下内容
…
< Connector port=“8080” protocol=“HTTP/1.1”
connectionTimeout=“20000”
redirectPort=“8443” />
//将这里的8080直接改成80
…
![在这里插入图片描述](http://img.e-com-net.com/image/info8/fdd934e57cfe4e0594b0530730c4fa1c.png)
- 修改完配置文件,接下来就是重启Tomcat服务,Tomcat服务是不支持restart的方式重启服务的,所以要想重启服务必须先关闭服务,使用命令/usr/local/tomcat/bin/shutdown.sh,然后再启动服务,使用命令/usr/local/tomcat/bin/startup.sh。
- [root@tomcat ~]# /usr/local/tomcat/bin/shutdown.sh
- [root@tomcat ~]# /usr/local/tomcat/bin/startup.sh
![Tomcat搭建配置_第4张图片](http://img.e-com-net.com/image/info8/1594ef4cc60c4524800963b20ea900b2.png)
测试
- 重启服务之后,我们用netstat命令监听Java相关服务端口来查看是否启动成功,命令如下:
[root@tomcat ~]# netstat -plnt | grep java
- 如果启动成功,则会出现三个端口(8009、8005、80)。
端口发生冲突时,我们需要关闭其他占用该端口服务,重新启动Tomcat服务。
浏览器访问
- 配置文件修改完成,并Tomcat服务启动成功后,打开浏览器在地址栏中输入http://192. 168.31.136/(注意你的IP),这时又会看见Tomcat默认页面。如图所示。
![Tomcat搭建配置_第5张图片](http://img.e-com-net.com/image/info8/1f9ad9a0243b4fd4aeb0e2337bc5c755.jpg)
配置Tomcat虚拟主机
查看默认虚拟主机
- 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 “%r” %s %b" />
< /Host>
…
-
其中和之间的配置为虚拟主机配置部分:
name定义域名;
appBase定义应用的目录;
unpackWARs为是否自动解压war包;
autoDeploy 如果此项设置为true,表示Tomcat服务处于运行状态,能够检测appbase下的文件,如果有新的Web应用加入进来,会自动发布这个Web应用。
-
Java的应用通常是一个JAR的压缩包,你只需要将JAR的压缩包放到appBase目录下面即可。刚刚我访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。
新增虚拟主机
- 新增虚拟主机,编辑server.xml在< /Host>下面增加以下内容:
[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 里面。
appBase部署Java应用
- 下面我们通过部署个Java的应用来体会appBase和docBase目录的区别。
为了方便测试,下载一个zrlog(Java写的blog站点应用,轻量),zrlog实际就是一个war包。
- (下载地址:http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war)
先暂时将zrlog的war包下载到/usr/local/src目录下,命令如下:
[root@tomcat ~]# cd /usr/local/src/
[root@tomcat src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
…
[root@tomcat src]# ls |grep zrlog
![在这里插入图片描述](http://img.e-com-net.com/image/info8/e19127e64401456fb8bd7e0887bec566.png)
- 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/
![在这里插入图片描述](http://img.e-com-net.com/image/info8/008e42472cd448049f20a691d461eb6c.png)
// 将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
![在这里插入图片描述](http://img.e-com-net.com/image/info8/223f557d0ee74c61a6ee41d4b9d87401.png)
// 一但重命名或删除war包解压后的包的文件时,war包就会在解压出一个文件夹。
用浏览器访问http://192.168.31.136/zrlog/(注意你的IP),如图所示:
出现安装向导,这是一个配置数据库的过程。
- 登入数据库,在数据库中创建一个zrlog数据库和zrlog用户。命令如下:
- [root@tomcat webapps]# /usr/local/mysql/bin/mysql
- mysql> create database zrlog;
- mysql> grant all on zrlog.* to ‘zrlog’@127.0.0.1 identified by ‘000000’;
- mysql>exit
![Tomcat搭建配置_第7张图片](http://img.e-com-net.com/image/info8/ea48952937c648c5abf2f2708b969b1c.jpg)
- 检查创建用户是否可以登陆数据库,使用zrlog用户登录,命令如下:
- [root@tomcat webapps]# /usr/local/mysql/bin/mysql -u zrlog -h 127.0.0.1 -p000000
- mysql> show databases;
- mysql> exit
![Tomcat搭建配置_第8张图片](http://img.e-com-net.com/image/info8/069d8e742d7e472cbedfdff99afaefd2.jpg)
- 检查完成,zrlog用户登录成功。使用 zrlog用户信息填写刚才在浏览器中打开的网页,Email填写自己的邮箱,本次是实验,填写内容为自定义邮箱([email protected]),单击“下一步”按钮,如图所示:
![Tomcat搭建配置_第9张图片](http://img.e-com-net.com/image/info8/b48a582aa9544537bb4db9aa88fd941e.jpg)
- 设置管理员账号(admin)和管理员密码(123456),网站标题和子标题按需填写,本次自定义内容(网站标题:“测试”,网站子标题:“linux”),如图所示:
![Tomcat搭建配置_第10张图片](http://img.e-com-net.com/image/info8/b0646ee89f984af4a16362a6cdb72700.jpg)
- 填写完成后,单击“下一步”按钮,可以看到安装完成的界面。如图所示:
![Tomcat搭建配置_第11张图片](http://img.e-com-net.com/image/info8/c379e57cf28847bcada2cc82a6f158a2.jpg)
- 单击“点击查看”按钮,我们就可以进入搭建好的zrlog页面了。如图所示:(IP变更为 192.168.31.137 不影响登录zrlog)
![Tomcat搭建配置_第12张图片](http://img.e-com-net.com/image/info8/93574afe0ed34199b04016d8f7de6f62.jpg)
- 输入安装向导里已经设置好的账户名和密码(admin:123456),单击“登录”按钮,登录成功页面,如图所示:
![Tomcat搭建配置_第13张图片](http://img.e-com-net.com/image/info8/1291d23aa2674c04bc74cbae8cbc8a31.jpg)
- 单击“文章撰写”栏目,写上自己想写的内容,然后回到主页面,你就可以看到刚才你写的内容。
![Tomcat搭建配置_第14张图片](http://img.e-com-net.com/image/info8/b8950e484ada41c784883d134fc720f4.jpg)
ocBase部署Java应用
- 我们在浏览器访问zrlog需要指定IP地址加目录,那么如何才能输入IP直接访问该目录呢?
- 查看虚拟主机docBase的路径,结果如下:
- [root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml
//docBase 定义的目录为:/data/wwwroot/123.cn
- 创建docBase目录,命令如下:
- [root@tomcat webapps]# mkdir -p /data/wwwroot/123.cn/
将/usr/local/tomcat/webapps/zrlog 中的所有文件移动到/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.31.137 www.123.cn
- 测试
打开命令提示符(CMD),用ping命令ping www.123.cn 看IP是否为虚拟机IP,如果是的话,现在就可以访问了。结果如下图所示。
![Tomcat搭建配置_第15张图片](http://img.e-com-net.com/image/info8/802ed0813d0c48739f903182f15a3697.jpg)
- 接下来就用域名去访问zrlog页面,由于之前配置完虚拟主机后,并没有重启服务,这里要重启一下服务。命令如下:
[root@tomcat webapps]# /usr/local/tomcat/bin/shutdown.sh
[root@tomcat webapps]# /usr/local/tomcat/bin/startup.sh
- 重启Tomcat服务完成后,打开浏览器在地址栏输入www.123.cn,就可以看到zrlog的首页。如图所示:
这个页面跟之前用指定IP加目录访问的页面是一模一样的。
Tomcat日志
查看日志
- Tomcat在应用过程中,难免会出现错误,如何去查看这些错误,这就需要查看Tomcat的日志。Tomcat日志存放在/usr/local/tomcat/logs/目录下。命令如下:
- [root@tomcat ~]# ls /usr/local/tomcat/logs/
![在这里插入图片描述](http://img.e-com-net.com/image/info8/43771bbcf72941b7a10a1bc321aa967a.png)
- catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。
- catalina.2020-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。
- host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
- localhost和localhost-access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
配置生成日志
-
由于日志默认不会生成,需要在server.xml中配置一下。所以接下来配置新增虚拟主机的访问日志,具体方法是在对应虚拟主机的里面加入下面的配置(我们用www.123.cn来进行配置),编辑以下配置文件server.xml,命令如下:
-
[root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml
-
valve为日志文件配置;
-
prefix定义访问日志的前缀;
-
suffix定义日志的后缀;
-
pattern定义日志格式。
注意:新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。
-
配置完成后,重启Tomcat服务,命令如下:
-
[root@tomcat ~]# /usr/local/tomcat/bin/shutdown.sh
-
[root@tomcat ~]# /usr/local/tomcat/bin/startup.sh
-
重启Tomcat服务完成后,访问网站,查看/usr/local/tomcat/logs目录下是否有日志生成,并且查看生成的日志信息,命令如下:
-
[root@tomcat ~]# ls /usr/local/tomcat/logs/
![在这里插入图片描述](http://img.e-com-net.com/image/info8/9d5651a7158e4556ac984c48b5be75de.png)
- [root@tomcat ~]# cat /usr/local/tomcat/logs/localhost_access_log.2021-03-12.txt
![在这里插入图片描述](http://img.e-com-net.com/image/info8/701d03abae814d2aa92bd9bc28eef1e2.png)
至此,Tomcat搭建配置完成。