0527 Tomcat配置
一、Tomcat简介
- Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
- java程序写的网站用tomcat+jdk来运行,tomcat是一个中间件,真正起作用的,解析java脚本的是jdk
- jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库。
- 最主流的jdk为sun公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk。
我们已经学过了LAMP和LNMP架构;针对的开发语言是PHP;可以说PHP是一门开发Web程序非常流行的语言;早期的比较流行的是asp,是在windows平台上运行的一种编程语言;但是因为安全性不高;所以越来越多做网站的人用Php去开发网站,相对来说也是比较安全的。
除了PHP外,还有一门语言叫java;java是一门非常庞大的开发语言;不仅仅是可以开发开网站;也可以开发大型的软件、工具、甚至是游戏都可以;tomcat实际上是一个中间件,用来运行Java语言写的网站;那我们Php写的代码,要用php去解析;java就要用tomcat加上JDK一起去解析。
二、安装jdk
1、先在windows环境下,下载好jdk,用xftp传输到linux虚拟机root下
JDK下载地址:
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
下载64位linux的tar.gz安装包
2、解压移动安装包并改名
使用快捷键ctrl + alt + F打开传输界面,将文件先放到root目录下

再将文件移动到src目录下并解压:
mv jdk-8u211-linux-x64.tar.gz /usr/local/src/
cd /usr/local/src/
tar zxvf jdk-8u211-linux-x64.tar.gz

3、移动解压后的包到/usr/local/jdk1.8并改名
mv jdk1.8.0_211 /usr/local/jdk1.8
4、编辑/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
5、加载服务后,查看下载版本是否正确;
source /etc/profile
java -version

三、安装Tomcat
其实Tomcat只是一个中间件,真正起作用的就是咱们已经安装的jdk。没有Tomcat还不可以,他的作用就是监听8080;8005;8009端口。假如说,访问站点,需要一个webserver,而Tomcat就可以理解为webserver!
1、下载压缩包
wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.20/bin/apache-tomcat-9.0.20.tar.gz
2、解压、并把解压包移到 /usr/local/tomcat下;
tar zxvf apache-tomcat-9.0.20.tar.gz
mv apache-tomcat-9.0.20 /usr/local/tomcat
3,、启动与关闭服务
/usr/local/tomcat/bin/startup.sh

/usr/local/tomcat/bin/shutdown.sh //关闭服务
netstat -lntp |grep java //查看监听端口

三个端口释义:
- 8080为提供web服务的端口;
- 8005为管理端口;//显示调用会慢
- 8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到
4、关闭防火墙后访问网页
systemctl stop firewalld
systemctl disable firewalld

四、配置Tomcat监听80端口
1、要给Tomcat监听80端口,那先看下80监听端口,是否占用;
netstat -lntp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1072/nginx: master //80端口被nginx占用,需要关闭nginx服务
/etc/init.d/nginx stop
2、在确认80端口处于空闲状态,在tomcat主配置文件,把8080端口改为80端口;
vim /usr/local/tomcat/conf/server.xml

重新加载tomcat主配置文件,并查看80端口情况;
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
netstat -lntp |grep 80 //java占用80端口
tcp 0 0 0.0.0.0:37580 0.0.0.0:* LISTEN -
tcp6 0 0 :::80 :::* LISTEN 9350/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 9350/java
tcp6 0 0 :::8009 :::* LISTEN 9350/java
五、配置Tomcat的虚拟主机
1、虚拟主机配置文件
在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/www.123.cn/" debug="0" reloadable="true" crossContext="true"/>
</Host>
以上关键词释义:
- name 定义域名;
- appBase 定义应用的目录;
- unpackWARs=”true” 是否自动解压;(也是就是说,当我们往站点目录里面直接上传一个war的包,它会自动解压)
- docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中,可能会遇到过访问404的问题,其实就是docBase没有定义对。
2、建立java站点
(1)下载站点程序zrlog
wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
(2)把此war包,复制一份到/usr/local/tomcat/webapps/下,在此目录下会自动解压;(如未自动解压,请重启Tomcat服务)

把zrlog-1.7.1-baaecb9-release解压包,改名为zrlog;
cd /usr/local/tomcat/webapps/
mv zrlog-1.7.1-baaecb9-release zrlog

此时在浏览器中输入:http://192.168.169.129/zrlog

(3)创建网站数据库
进入mysql,创建一个数据库,并创建用户
mysql -uroot -pluolinux
mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 indentified by 'luolinux1'; //指定密码
(4)使用新用户,及密码登录
mysql uzrlog -h127.0.0.1 -pluolinux1
mysql -uzrlog -h127.0.0.1 -pluolinux1
(5)在浏览器测试
配置好数据库后,现在回到刚才的网页上,按下面填写;

点击下一步,按下图填写;

点击下一步,按下图操作;
此时,博客配置好,里面有一篇文章;
在点击管理,进入后台操作;
在后台写一篇文章,自定义,它将随时保存;
(6)测试另一个虚拟主机,域名为www.123.cn;
在windows下,host文件下,配置www.123.cn;在cmd下ping此域名;
按虚拟主机配置文件,创建相应的网站目录
mkdir /data/wwwroot/123.cn
把zrlog目录下所有文件,移到新创建的网站目录123.cn
mv zrlog/* /data/wwwroot/123.cn/
重新加载tomcat配置文件
/usr/local/tomcat/bin/shutdown.sh
/usr/local/tomcat/bin/startup.sh
netstat -lntp |grep 80
tcp 0 0 0.0.0.0:37580 0.0.0.0:* LISTEN -
tcp6 0 0 :::80 :::* LISTEN 10068/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 10068/java
tcp6 0 0 :::8009 :::* LISTEN 10068/java
回到浏览器下,用域名www.123.cn访问,此时得到如下页面;

3、root目录
网站的图标和一些重要信息都在/usr/local/tomcat/webapps/ROOT下

六、Tomcat日志
Tomcat日志目录位置/usr/local/tomcat/logs
cd /usr/local/tomcat
ls logs

日志目录下,各种日志的作用:
- catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。
- catalina.2017-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志(最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它)
- host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
- localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
访问日志默认不会生成,需要在server.xml中配置;
vim /usr/local/tomcat/conf/server.xml
此为虚拟主机下的,访问日志配置:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" //关键字logs
prefix="localhost_access_log" suffix=".txt" //定义的前缀名,后缀名
pattern="%h %l %u %t "%r" %s %b" /> //定义日志格式
新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志; 错误日志会统一记录到catalina.out中。
本文详细介绍了Tomcat的配置过程,包括Tomcat简介,以及在Linux环境下安装JDK和Tomcat的步骤。还说明了如何配置Tomcat监听80端口、设置虚拟主机,以及创建Java站点和数据库。最后介绍了Tomcat日志的位置和各类日志的作用。

被折叠的 条评论
为什么被折叠?



