Tomcat搭建配置
一、介绍Tomcat
- 环境准备
关闭防火墙并设置开机不自启,配置SElinux规则。
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~]# setenforce 0
- 修改主机名
使用hostnamectl命令修改主机名,命令如下:
[root@localhost ~]# hostnamectl set-hostname tomcat
// 修改完后Ctrl+D退出后重新连接
[root@tomcat ~]#
二、安装JDK
- 下载JDK
官网下载地址:
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
通过浏览器下载到本机上,然后再通过xftp或CRT上传到Linux,上传JDK到/usr/local/src/目录下。
2.安装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 zxvf jdk-8u281-linux-x64.tar.gz
[root@tomcat src]# mv jdk1.8.0_281/ /usr/local/jdk1.8
[root@tomcat src]# ls /usr/local/
bin etc games include jdk1.8 lib lib64 libexec sbin share src
3.修改环境变量
设置环境变量,编辑/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
4.检查JDK安装情况
配置完成环境变量后,使用java -version命令检查是否安装成功,如果显示结果带有java version "1.8.0_281"字样和我们解压的jdk-8u281-linux-x64.tar.gz包的版本相对应,则证明安装成功。
[root@tomcat src]# java -version
java version "1.8.0_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b12, mixed mode)
这里有可能出现的不是上面的这种,而是如下所示:
[root@tomcat src]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, 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_281"字样。
[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_281"
Java(TM) SE Runtime Environment (build 1.8.0_281-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.281-b09, mixed mode)
三、安装Tomcat
- 安装Tomcat
官网下载地址:http://tomcat.apache.org/
下载合适的Tomcat版本,下载完成后使用xftp或CRT上传到虚拟机/usr/local/src/目录下,然后解压,将解压后的文件移动到/usr/local目录下,并命名为tomcat。
[root@tomcat ~]# cd /usr/local/src/
[root@tomcat src]# tar zxvf 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 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
Tomcat started.
3.测试
用netstat命令来监听java相关服务端口,查看是否有以下端口存在(8009、8080、8005),如果存在则证明Tomcat服务启动成功。
[root@tomcat src]# netstat -lnpt | grep java
tcp6 0 0 :::8009 :::* LISTEN 28585/java
tcp6 0 0 :::8080 :::* LISTEN 28585/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 28585/java
三个端口8009、8005和8080的意义:
- 8080为提供Web服务的端口;
- 8005为管理端口;
- 8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到。
然后打开浏览器,在地址栏中输入http://IP:8080/(这里的IP为你虚拟机的IP地址),可以看到Tomcat的默认页面。
四、配置Tomcat监听80端口
1.修改配置文件
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
修改完配置文件,然后重启Tomcat服务,Tomcat服务是不支持restart的方式重启服务的,所以要想重启服务必须先关闭服务,使用命令/usr/local/tomcat/bin/shutdown.sh,然后再启动服务,使用命令/usr/local/tomcat/bin/startup.sh。
[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
[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
Tomcat started.
2.测试
重启服务之后,我们用netstat命令监听Java相关服务端口来查看是否启动成功。
[root@tomcat d]# netstat -plnt | grep java
tcp6 0 0 :::8009 :::* LISTEN 29528/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 29528/java
如果启动成功,则会出现三个端口(8009、8005、80)。
而并没有80端口出现,这是因为这台机器我们之前安装过LNMP。Nginx的默认端口也是80,这就和我刚刚设置的Tomcat端口发生冲突。这时,我们需要关闭Nginx服务,重新启动Tomcat服务。
[root@tomcat d]# service nginx stop
Stopping nginx (via systemctl): [ 确定 ]
//关闭成功
[root@tomcat d]# /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 d]# /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相关服务端口,看这次三个端口是否存在.
3.浏览器访问
配置文件修改完成,并Tomcat服务启动成功后,打开浏览器在地址栏中输入http://192. 168.243.130/(你的IP),这时又会看见Tomcat默认页面。
五、配置Tomcat虚拟主机
- 查看默认虚拟主机
Tomcat和Apache、Nginx一样,都支持虚拟主机配置。每个虚拟主机配置文件就是一台服务器,支持一个IP下可以访问多个域名,每个域名代表一个网站。所以一台服务器上可以配置多个网站。
编辑Tomcat配置文件,直接在配置文件内搜索Host
[root@tomcat ~]# vim /usr/local/tomcat/conf/server.xml
找到下图内容:
其中和之间的配置为虚拟主机配置部分:
- 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>
3.appBase部署Java应用
下载一个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
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/
// 将war包拷贝到/usr/local/tomcat/webapps/目录下之后,包会自动解压。(前提是tomcat正常启动。
[root@tomcat 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
重命名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 examples host-manager manager ROOT zrlog zrlog-1.7.1-baaecb9-release.war
[root@tomcat webapps]# ls
docs host-manager ROOT zrlog-1.7.1-baaecb9-release
examples manager zrlog zrlog-1.7.1-baaecb9-release.war
用浏览器访问http://192. 168.243.130/zrlog
出现安装向导,这是一个配置数据库的过程。
因为这个机器安装过LNMP,在这里就不再演示MySQL的安装方式,直接调用。登入数据库,在数据库中创建一个zrlog数据库和zrlog用户。
[root@tomcat d]# /usr/local/mysql/bin/mysql -uroot -pqwe
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 7
Server version: 5.6.39-log 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;
Query OK, 1 row affected (0.01 sec)
//创建zrlog数据库
mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by '000000';
Query OK, 0 rows affected (0.00 sec)
//创建zrlog用户
mysql> exit
Bye
检查创建用户是否可以登陆数据库,使用zrlog用户登录。
[root@tomcat d]# /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 8
Server version: 5.6.39-log 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.01 sec)
mysql> exit
Bye
检查完成,zrlog用户登录成功。使用 zrlog用户信息填写刚才在浏览器中打开的网页,Email填写自己的邮箱,本次是实验,填写内容为自定义邮箱(tomcat@163.com),单击“下一步”按钮。
设置管理员账号(admin)和管理员密码(123456),网站标题和子标题按需填写,本次自定义内容(网站标题:“test”,网站子标题:“linux”)。
填写完成后,单击“下一步”按钮,可以看到安装完成的界面。
单击“点击查看”按钮,我们就可以进入搭建好的zrlog页面了。
我们也可以进入管理页面,写一些文章,单击上图主菜单栏中的“管理”按钮,跳转如图所示:
输入安装向导里已经设置好的账户名和密码(admin:123456),单击“登录”按钮,登录成功页面,如图所示:
单击“文章撰写”栏目,写上自己想写的内容,然后保存,如图所示:
然后回到主页面,就可以看到刚才写的内容。
4.Base部署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.243.130 www.123.cn
5.测试
打开命令提示符(CMD),用ping命令ping www.123.cn 看IP是否为虚拟机IP,如果是的话,现在就可以访问了。
用域名去访问zrlog页面,由于之前配置完虚拟主机后,并没有重启服务,需要重启一下服务。
[root@tomcat d]# /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 d]# /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服务完成后,打开浏览器在地址栏输入www.123.cn,就可以看到zrlog的首页。
此页面跟之前用指定IP加目录访问的页面是一模一样的。
六、Tomcat日志
1.查看日志
通过查看Tomcat的日志,可以知道Tomcat在应用过程中,出现的错误。Tomcat日志存放在/usr/local/tomcat/logs/目录下。
- catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志
- catalina.2020-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。
- host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
- localhost和localhost-access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
2.配置生成日志
由于日志默认不会生成,需要在server.xml中配置一下。所以接下来配置新增虚拟主机的访问日志,具体方法是在对应虚拟主机的里面加入下面的配置(我们用www.123.cn来进行配置),编辑以下配置文件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"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory=
"logs"
prefix="123.cn_access_log" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
- valve为日志文件配置;
- prefix定义访问日志的前缀;
- suffix定义日志的后缀;
- pattern定义日志格式。
注意:新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。
配置完成后,重启Tomcat服务:
重启Tomcat服务完成后,访问网站,查看/usr/local/tomcat/logs目录下是否有日志生成,并且查看生成的日志信息。
Tomcat搭建配置完成。