Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另 外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP 容器,独立的Servlet容器是Tomcat的默认模式。不过,Tomcat处理静态HTML的能力不如Apache 服务器。目前Tomcat最新版本为9.0。
Java 程序写的网站用 Tomcat+JDK 来运行。
Tomcat 是一个中间件,真正起作用的,解析 Java 脚本的是 JDK。
JDK(Java Development Kit)是整个 Java 的核心,它包含了 Java 运行环境和 一堆 Java 相关的工具以及 Java 基础库。最主流的 JDK 为 Sun 公司发布的 JDK, 除此之外,其实 IBM 公司也有发布 JDK,CentOS 上也可以用 yum 安装 OpenJDK。
准备:
主机名 | IP地址 | 安装包 |
tamcat | 192.168.200.20 | apache-tomcat-9.0.41.tar jdk-8u144-linux-x64.tar mysql-5.6.47-linux-glibc2.12-x86_64.tar mysql-5.6.47-linux-glibc2.12-x86_64.tar |
安装相关工具
yum install net-tools vim
关闭防火墙及SElinux规则配置
systemctl stop firewalld #关闭防火墙
systemctl disable firewalld #开机不自启
setenforce 0 #配置selinux规则(放开)
修改主机名
hostnamectl set-hostname tomcat
bash
1.安装配置JDK
部署 Tomcat 环境需要 JDK 软件环境,我们进入到/usr/local/src/目录下,解压 刚刚上传的 jdk-8u211-linux-x64.tar.gz,并将解压后的文件移动到/usr/local/目录下 改名为 jdk1.8。然后使用 ls 命令查看下/usr/local/目录下是否有 jdk1.8 目录。
cd /usr/local/src/
tar -zxvf jdk-8u144-linux-x64.tar.gz
mv jdk1.8.0_144/ /usr/local/jdk1.8
ls /usr/local/
修改环境变量
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/li
b/charsets.jar
source /etc/profile #环境变量生效
检查JDK安装情况
java -version
2.安装配置tomcat
cd /usr/local/src/
tar -zxvf apache-tomcat-9.0.41.tar.gz
mv apache-tomcat-9.0.41 /usr/local/tomcat
启动tomcat
/usr/local/tomcat/bin/startup.sh
测试tomcat是否正在运行
用 netstat 命令来监听 java 相关服务端口,查看是否有以下端口存在(8009、 8080、8005),如果存在则证明 Tomcat 服务启动成功。
注意:8009 端口为第三方服务调用的端口,没有不影响正常使用
netstat -lnpt | grep java
端口作用:
8080 : 用于监听浏览器转发过来的请求
8005: 关闭tomcat通信的端口。 这个端口负责监听关闭tomcat的请求
8009 接受其他服务器转发过来的请求。
注意:8009端口不存在不妨碍正常使用
浏览器测试:输入192.168.200.20:8080
出现tomcat的默认页面
配置 Tomcat 监听 80 端口
Tomcat 监听的是 8080 端口,如果想要直接访问,不加 8080 端口(默认输 入一个 IP 或者域名,访问 80 端口时是可以省略 IP 后端口号的)就需要配置 Tomcat 监听 80 端口,Tomcat 是支持端口自定义的。
编辑Tomcat的配置文件server.xml
vi /usr/local/tomcat/conf/server.xml
修改完配置文件,接下来就是重启 Tomcat 服务,Tomcat 服务是不支持 restart 的方式重启服务的 ,所以要想重启服务必须先关闭服务 ,使用命令 /usr/local/tomcat/bin/shutdown.sh , 然 后 再 启 动 服 务 , 使 用 命 令 /usr/local/tomcat/bin/startup.sh。
/usr/local/tomcat/bin/shutdown.sh
查看端口情况
netstat -lnpt | grep java
80端口已经出现,还有8005,启动成功。
打开浏览器在地址栏上输入IP地址
出现了tomcat的默认页面
3.配置Tomcat虚拟主机
Tomcat虚拟主机是通过linux或windows操作系统下进行独立运行的一个网站发布容器,他是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。
vi /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" />
其中和之间的配置为虚拟主机配置部分:
⚫ name 定义域名;
⚫ appBase 定义应用的目录;
⚫ unpackWARs 为是否自动解压 war 包;
⚫ autoDeploy 如果此项设置为 true,表示 Tomcat 服务处于运行状态,能够 检测 appbase 下的文件,如果有新的 Web 应用加入进来,会自动发布这个 Web 应用。 Java 的应用通常是一个 JAR 的压缩包,你只需要将 JAR 的压缩包放到 appBase 目录下面即可。刚刚我访问的 Tomcat 默认页其实就是在 appBase 目录下 面,不过是在它子目录 ROOT 里。
vi /usr/local/tomcat/conf/Catalina #Catalina是默认主机目录
出现了www.123.cn
搭建了一个 Tomcat,想要使用 Tomcat 去跑一个网站。首先应用不能是一个 传统所谓的目录(Apache、Nginx 访问网站,首先需要指定一个目录,目录里存 放着 PHP 文件或者是 Html 的文件,然后去访问),Tomcat 需要提供一个 war 的包,就是一个压缩包,这个压缩包里面包含着运行这个网站的一些文件,包括 配置,js 代码,数据库相关的等等,都需要打包成 war 这种文件,而这个文件需 要放置到 webapps 里面。
3.appBase部署java应用
下面我们通过部署个 Java 的应用来体会 appBase 和 docBase 目录的区别。 为了方便测试,下载一个 zrlog(Java 写的 blog 站点应用,轻量),zrlog 实 际就是一个 war 包。
cd /usr/local/src/
wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
ls
appBase 支持自动解压,所以直接将 war 包拷贝到/usr/local/tomcat/webapps/目录下:
cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
ls /usr/local/tomcat/webapps/ #将 war 包拷贝到/usr/local/tomcat/webapps/目录下之后,包会自动解压。(前提是 tomcat 正常启动)
cd /usr/local/tomcat/webapps/
mv zrlog-1.7.1-baaecb9-release zrlog
ls #一但重命名或删除 war 包解压后的包的文件时,war 包就会在解压出一个
文件夹
4.安装数据库
cd /usr/local/src/
tar -zxvf mysql-5.6.47-linux-glibc2.12-x86_64.tar.gz
[ -d /usr/local/mysql ] && mv /usr/local/mysql /usr/local/mysql_old
//&&相当于一个判断,意前面命令执行才会执行后面
# mv mysql-5.6.47-linux-glibc2.12-x86_64 /usr/local/mysql
// 挪动位置
# useradd -s /sbin/nologin mysql
//建立 MySQL 用户,因为启动 MySQL 需要该用户
# mkdir -p /data/mysql
//创建 datadir,数据库文件会放到这里面
# chown -R mysql:mysql /data/mysql
// 更改权限,不更改后续操作就会出问题
# yum install -y perl-Module-Install
# cd /usr/local/mysql
# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
//--user 表示定义数据库的以哪个用户的身份运
//--datadir 表示定义数据库的安装目录
#cp support-files/my-default.cnf /etc/my.cnf
#vi /etc/my.cnf //修改配置文件
#These are commonly set ,remove the # and set as required
basedir=/usr/local/mysql
//basedir 表示 MySQL 包所在路径
datadir=/data/mysql
//表示定义存放数据的位置
port=3306
//port 表示定义 MySQL 服务监听的端口号
server_id=128
//表示该 MySQL 服务的 ID 号
#cp support-files/mysql.server /etc/init.d/mysqld
//复制启动脚本文件
#chmod 755 /etc/init.d/mysqld
//修改启动脚本文件的属性
#chkconfig --add mysqld
//把 mysql 服务加到系统服务列表中
#chkconfig mysqld on
//开机就启动
#service mysqld start
//启动服务
ps -aux | grep mysqld
netstat -ntpl | grep 3306
# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
登录数据库,在数据库中创建一个zrlong数据库和zrlog用户
mysql #登录
create database zrlog; #创建zrlog数据库
grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by '000000'; #创建zrlog用户
exit #退出
检查创建用户是否可以登录数据库,使用zrlog用户登录
mysql -uzrlog -h127.0.0.1 -p000000 #使用zrlong登录mysql
show databases; #检查已有数据库
打开zrlong
填写完数据注册后
网站搭建完成
5.ocBase部署java应用
我们在浏览器访问 zrlog 需要指定 IP 地址加目录,那么如何才能输入 IP 直接 访问该目录呢? 查看虚拟主机 docBase 的路径,结果如下:
vi /usr/local/tomcat/conf/server.xml
创建 docBase 目录
mkdir -p /data/wwwroot/123.cn/
mv /usr/local/tomcat/webapps/zrlog/*
win系统设置主机映射
C:\Windows\System32\drivers\etc
打开DOS命令进行测试
ping www.123.cn
接下来就用域名去访问 zrlog 页面,由于之前配置完虚拟主机后,并没有重 启服务,这里要重启一下服务。命令如下:
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
5.Tomcat日志
查看日志
Tomcat 在应用过程中,难免会出现错误,如何去查看这些错误,这就需要查 看 Tomcat 的日志。Tomcat 日志存放在/usr/local/tomcat/logs/目录下。
ls /usr/local/tomcat/logs/
● 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 来进行配置),
vi /usr/local/tomcat/conf/server.xml
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="123.cn_access" suffix=".log"
pattern="%h %l %u %t "%r"%s %b"/>
● valve 为日志文件配置;
●prefix 定义访问日志的前缀;
●suffix 定义日志的后缀;
●pattern 定义日志格式
注意:新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个 localhost. 日期.log 日志,错误日志会统一记录到 catalina.out 中。关于 Tomcat 日志,你最 需要关注 catalina.out,当出现问题时,我们应该第一想到去查看它。 配置完成后,重启 Tomcat 服务,
ls /usr/local/tomcat/logs/
Tomcat日志设置完成。