文档章节

第16章 Tomcat配置

Linux学习笔记
 Linux学习笔记
发布于 07/18 07:39
字数 6175
阅读 10
收藏 0

16.1 Tomcat介绍

Tomcat介绍

  • LNMP架构针对的开发语言是PHP语言,php 是一门开发web程序非常流行的语言,早些年流行的是asp,在Windows平台上运行的一种编程语言,但安全性差,就网站开发人员就开始转到php,而且php相对的比较安全

  • java是一门比较庞大的开发语言,不仅可以开发建站,也可以开发大型软件工具和游戏

Tomcat介绍

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

2.java程序写的网站用tomcat+jdk来解析、运行

3.tomcat是一个中间件,用来运行java语言写的网站,真正起作用的,解析java脚本的是jdk

4.jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库。 5.最主流的jdk为sun公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk

  • java写的网页是jsp后缀,解析需要jdk

16.2 安装jdk

安装jdk目录概要

  • jdk版本1.6,1.7,1.8
  • 官网下载地址
  • 下载jdk8,放到/usr/local/src/目录下
  • tar zxvf jdk-8u144-linux-x64.tar.gz
  • mv jdk1.8.0_144 /usr/local/jdk1.8
  • 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 
  • source /etc/profile
  • java -version

安装jdk

1.安装tomcat和jdk,首先需要安装jdk,因为tomcat要想启动,依赖于jdk的环境变量

2.jdk版本目前有1.6、1.7、1.8,简称为6、7、8

3.这里使用的是JDK的1.8版本,官网地址

4.用浏览器打开jdk的官网,然后将手动将jdk下载到windows上,打开官网后,首先点同意 Accept License Agreement ,再选择一个对应的版本,即 tar.gz 的(选择的时候要看清自己的系统是多少位的,在centos6之前是区分32位或64位的,但在centos7中不在区分的,虽然有32位的版本,但是是基于64位的版本的基础上编译出来的,所以最终还是一个64位的),所以再用centos7的系统,那下载的jdk版本肯定是 x86 的

5.选择如下版本,然后点击下载

6.下载好jdk后,在linux系统中切换到 /usr/local/src 目录下

[root@xuexi-001 ~]# cd /usr/local/src/
[root@xuexi-001 ~]# ls
apr-1.6.3                                     nginx-1.12.1
apr-1.6.3.tar.gz                              nginx-1.12.1.tar.gz
apr-util-1.6.1                                php-5.6.30
apr-util-1.6.1.tar.bz2                        php-5.6.30.tar.gz
httpd-2.4.29                                  php-7.1.6
httpd-2.4.29.tar.gz                           php-7.1.6.tar.bz2
mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz  phpredis-develop
mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz     phpredis-develop.zip

7.将jdk传输到 /usr/local/src目录下,直接输入ctrl+alt+f快捷键,用xftp传输,比较方便,还非常安全,它是基于ssh传输,不需要开启ftp的端口

[root@xuexi-001 src]# ls
apr-1.6.3                                     nginx-1.12.1
apr-1.6.3.tar.gz                              nginx-1.12.1.tar.gz
apr-util-1.6.1                                php-5.6.30
apr-util-1.6.1.tar.bz2                        php-5.6.30.tar.gz
httpd-2.4.29                                  php-7.1.6
httpd-2.4.29.tar.gz                           php-7.1.6.tar.bz2
jdk-8u161-linux-x64.tar.gz                    phpredis-develop
mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz  phpredis-develop.zip
mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz

8.解压jdk安装包

[root@xuexi-001 src]# tar zxf jdk-8u161-linux-x64.tar.gz     //解压包
[root@xuexi-001 src]# du -sh jdk1.8.0_181/
368M	jdk1.8.0_181/

9.将解压完的包放到/usr/local/目录下,并修改名称为jdk1.8

  • mv jdk1.8.0_161 /usr/local/jdk1.8
[root@xuexi-001 src]# mv jdk1.8.0_181/ /usr/local/jdk1.8

10.编辑/etc/profile文件,这个文件是编辑环境变量

[root@xuexi-001 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 

保存退出

11.编辑完配置文件,使用 source 命令使文件生效

[root@xuexi-001 src]# source /etc/profile

12.检验jdk是否安装成功,使用命令java -version,看版本是否为安装的1.8.0_161,在运行命令后出现以下配置,说明jdk安装成功

[root@xuexi-001 src]# java -version 
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

13.若是运行命令java -version ,结果 出现的数字和我们下载的版本不一致,或者是openjdk,这时候去思考下是否安装过openjdk,若有openjdk,可以卸载掉openjdk(直接卸载指的是线下的服务器没跑任务的东西,若是线上的服务器运行后出现其他的版本或显示openjdk,这时不能随便的卸载这个包,因为系统的某个程序有可能在使用这个openjdk)

[root@xuexi-001 src]# rpm -qa |grep openjdk
[root@xuexi-001 src]# yum list | grep openjdk

16.3 安装Tomcat

安装Tomcat目录概要

安装Tomcat

  • tomcat虽然是jdk和java 的中间件,但是如果没有了它,就不能去监听8080端口或80端口,也无法让客户端或者浏览器去访问直接访问站点,tomcat就是一个java的webserver
  • tomcat依赖于jdk ,所以需要先安装jdk

1.切换到/ues/local/src/目录下

[root@xuexi-001]# cd /usr/local/src

2.下载tomcat的安装包(二进制免编译包),命令 wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz

[root@xuexi-001 src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-9/v9.0.11/bin/apache-tomcat-9.0.11.tar.gz

3.解压包

[root@xuexi-001 src]# tar -zxvf apache-tomcat-9.0.11.tar.gz

4.解压完之后,移动到/usr/local/目录下,并更改名字为tomcat

  • mv apache-tomcat-8.5.24 /usr/local/tomcat
[root@xuexi-001 src]# mv apache-tomcat-9.0.11 /usr/local/tomcat

5.启动tomcat,因为tomcat软件包下载的是 二进制免编译包 ,不用去编译

  • /usr/local/tomcat/bin/startup.sh
[root@xuexi-001 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.

6.这时候可以grep查看是否有java的进程,若是有java这个进程,说明tomcat正常启动了

[root@xuexi-001 src]# ps aux | grep java
root       1997 13.5  4.5 2509108 84612 pts/0   Sl   08:42   0:04 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       2042  0.0  0.0 112720   968 pts/0    S+   08:43   0:00 grep --color=auto java

7.关闭tomcat的命令为/usr/local/romcat/bin/shutdown.sh ,tomcat不支持restart,若是更改了配置文件,需要去重新启动,先stop,然后start

  • /usr/local/tomcat/bin/shutdown.sh
  • 关闭tomcat,再来查看进程,会看到tomcat已经关闭
[root@xuexi-001 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@xuexi-001 src]# ps aux |grep java
root       2072  0.0  0.0 112720   972 pts/0    S+   08:45   0:00 grep --color=auto java

这时再启动tomcat
[root@xuexi-001 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.
[root@xuexi-001 src]# ps aux |grep java
root       2088 55.4  4.5 2508912 85096 pts/0   Sl   08:45   0:02 /usr/local/jdk1.8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
root       2131  0.0  0.0 112720   968 pts/0    R+   08:45   0:00 grep --color=auto java

9.查看tomcat的监听端口,会看到的监听端口为8080端口和8009端口,还有一个8005端口

  • 8080为提供web服务的端口,8005为管理端口,8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到
  • 一般使用的是8080端口
[root@xuexi-001 src]# netstat -lntp |grep java
tcp6       0      0 :::8080                 :::*                    LISTEN      2088/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      2088/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      2088/java   

10.测试tomcat访问页面

11.关闭防火墙

  • 关闭firlewalld
  • systemctl stop firewalld
  • systemctl disable firewalld
关闭防火墙
[root@xuexi-001 src]# systemctl stop firewalld
[root@xuexi-001 src]# systemctl disable firewalld
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
Removed symlink /etc/systemd/system/basic.target.wants/firewalld.service.
[root@xuexi-001 src]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
[root@hf-01 src]# 

12.关闭防火墙之后,打开浏览器访问 虚拟机的IP 加 8080端口 ,如 192.168.202.131:8080

13.打开如下的界面就是访问成功了

16.4 配置Tomcat监听80端口

配置Tomcat监听80端口目录概要

  • vim /usr/local/tomcat/conf/server.xml
Connector port="8080" protocol="HTTP/1.1"修改为Connector port="80" protocol="HTTP/1.1"
  • /usr/local/tomcat/bin/shutdown.sh
  • /usr/local/tomcat/bin/startup.sh

配置Tomcat监听80端口

1.tomcat监听的是8080端口,若想要直接直接访问,不需要8080端口访问,就是默认输入一个IP或者域名,访问的是80端口(访问的时候80端口是可以省略的)

2.tomcat是支持自定义端口的,把 8080端口 改为 80端口

3.编辑tomcat的配置文件,在 /usr/local/tomcat/conf/目录下有一个server.xml文件

[root@xuexi-001 ~]# vim /usr/local/tomcat/conf/server.xml

搜索 /8080
这里是控制监听端口的,将这里的 8080 改为 80
    <Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

保存退出

4.改完配置文件后,重启服务,因为是不支持restart的,只能先停止,然后在开启

  • /usr/local/tomcat/bin/shutdown.sh
  • /usr/local/tomcat/bin/startup.sh
[root@xuexi-001 ~]# /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@xuexi-001 ~]# /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.

5.这时再来查看监听端口是否改变,会看到监听了80端口

[root@xuexi-001 ~]# netstat -lntp |grep java
tcp6       0      0 :::80                   :::*                    LISTEN      1863/java           
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1863/java           
tcp6       0      0 :::8009                 :::*                    LISTEN      1863/java   

6.但有可能会没看到tomcat监听80端口,因为nginx已经监听了80端口,80端口被占用

  • nginx占用80端口
  • 解决方法:
  • 停掉nginx服务命令/etc/init.d/nginx stop
  • 再来重启tomcat,会看到tomcat监听的是80端口

7.这时再来浏览器访问IP (若是刚重启tomcat服务,8005端口还没启动,那么浏览器访问就会比较慢)

18.若是在实际线上的生产环境,就不能直接停掉Nginx,这时可以让nginx代理tomcat了,80 代理 8080

16.5/16.6/16.7 配置Tomcat虚拟主机

16.5/16.6/16.7 配置Tomcat虚拟主机目录概要

  • vim /usr/local/tomcat/conf/server.xml
  • 其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名, appBase定义应用的目录,Java的应用通常是一个war的压缩包,你只需要将war的压缩包放到appBase目录下面即可。刚刚阿铭访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。
  • 增加虚拟主机,编辑server.xml,在</Host>下面增加如下内容
<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为应用存放目录,通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录
  • 下面我们通过部署一个java的应用来体会appBase和docBase目录的作用
  • 下载zrlog wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
  • mv zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
  • mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release /usr/local/tomcat/webapps/zrlog 浏览器访问 ip:8080/zrlog/install/
  • mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

16.5/16.6/16.7 配置Tomcat虚拟主机

  • 在之前的学习中,Apache还是nginx都属于webServer,都支持虚拟主机配置文件,虚拟主机配置文件就是一台服务器上或者一个webserver上,支持一个IP下可以访问多个域名,每个域名代表一个网站,所以可以配置多个网站,每个网站的虚拟主机,每个网站的许配置文件都是一个虚拟主机,tomcat同样也支持这个概念

1.打开tomcat虚拟主机配置文件

  • tomcat的配置文件格式和Apache、nginx不一样,是xml形式
[root@xuexi-001 ~]# vim /usr/local/tomcat/conf/server.xml

搜索 /<Host
 <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; %s %b" />         //日志相关

      </Host>
  • <Host>到</Host>之间的就表示虚拟主机
  • name定义域名,域名为localhost
  • appBase 表示应用目录在哪里
  • 比如搭建了一个tomcat,想要使用tomcat去跑一个网站,那么需要网站放在哪里呢?
  • 首先你的应用不能是一个传统所谓的目录,Apache,nginx访问网站,首先需要指定一个目录,目录里存放着PHP文件或者是html的文件,然后去访问;而tomcat则不一样,它需要提供一个WAR的包,就是一个压缩包,这个压缩包里面包含着运行这个网站的一些文件,包括配置,js代码,数据库相关的等等,都需要打包成war这种文件,而这个文件需要放置到 webapps 里面
  • unpackWARs 就是是否自动的解压war这个包,也就是war包放到webapps里面,就会自动解压
  • 除了使用war包以外,还可以单独的指定目录,这个目录里面存放着一些jsp文件,也就是提供的不是war包,而就是一个目录,这个目录里面有jsp的程序,如果是这样,还需要docbase去定义
  • webapps的默认路径为/usr/local/tomcat/webapps/,webapps目录下,默认有5个目录(docs examples host-manager manager ROOT)
  • autoDeploy 如果此项设置为true,表示tomcat服务处于运行状态,能够检测appbase下的文件,如果有新的web应用加入进来,会自动发布这个web应用

2.增加虚拟主机,编辑server.xml,在</Host>下面增加如下内容

<Host name="www.123.cn" appBase=""
##域名为www.123.cn,appbase后为空,就不会于docBase相互干扰
        unpackWARs= "true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
## 自定义站点路径,不使用自动安装war的方式
</Host>

保存退出
  • 如果不定义appbase,不想要war存在,可以定义一个目录,目录里放网站的程序,这个相当于把war包解压放到目录里,如果不想要解压这个包,就可以放到appbase里面,这两个二选一,如果同时存在,可以把其中一个写空,防止相互 干扰。
  • 有时会出现404问题,就有可能是appbase或者docbase定义错误
  • 总结
  • docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。
  • appBase为应用存放目录(实际上是一个相对路径,相对于 /usr/local/tomcat/ 路径),通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录

3.为了方便测试,下载一个zrlog(java写的blog站点应用,轻量),zrlog实际就是一个war包,进行测试

  • 下载到/usr/local/src目录下
[root@xuexi-001 ~]# cd /usr/local/src/
[root@xuexi-001 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war

4.zrlog安装很简单,appbase是支持自动解压war包的,将war文件放到appbase里面,appbase默认是在/usr/local/tomcat/webapps/

[root@xuexi-001 src]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  manager  ROOT
  • 默认在下面有五个目录

5.将zrlog的war文件拷贝到/usr/local/tomcat/webapps/目录下,然后再来查看/usr/local/tomcat/webapps/,会看到war包自动解压了——>前提,tomcat正常启动着,否则是无法自动解压的

[root@xuexi-001 src]# cp zrlog-1.7.1-baaecb9-release.war  /usr/local/tomcat/webapps/
[root@xuexi-001 src]# ls /usr/local/tomcat/webapps/
docs          ROOT
examples      zrlog-1.7.1-baaecb9-release
host-manager  zrlog-1.7.1-baaecb9-release.war
manager
  • 也就是说war包放到appbase定义的路径下会自动解压

6.解压完之后,就可以正常去访问了,修改zrlog包名称

  • 为了不影响实验结果,先更改自动生成的目录的名字,再移走webapps目录下的war包;因为一旦移走war包,和war同名的目录也会自动删除;如果这个目录下没有和war同名的目录,也会重复的解压
  • 若删除appbase下的war包,那么解压的包也会跟着直接删除
  • 修改war包的名称后,只要下载的war包一直存在,那么就会再次生成一个目录
[root@xuexi-001 src]# cd /usr/local/tomcat/webapps/
[root@xuexi-001 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
[root@xuexi-001 webapps]# ls
docs      host-manager  ROOT   zrlog-1.7.1-baaecb9-release.war
examples  manager       zrlog

7.然后去访问,使用浏览器访问IP,会看到安装向导,其实就是一个配置数据库的过程

8.检查mysql服务是否正常启动

[root@xuexi-001 webapps]# ps aux |grep mysql
root       1091  0.0  0.0 115432  1724 ?        S    19:41   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/xuexi-001.pid
mysql      1249  0.0 24.4 1300836 456436 ?      Sl   19:42   0:04 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/data/mysql/xuexi-001.err --pid-file=/data/mysql/xuexi-001.pid --socket=/tmp/mysql.sock
root       2058  0.0  0.0 112720   968 pts/0    R+   21:11   0:00 grep --color=auto mysql

9.进入到数据库中,在数据库里面创建一个zrlog的数据库

[root@xuexi-001 webapps]# mysql -uroot -p123456
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.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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.00 sec)

mysql> 

10.创建完数据库之后,还需要创建一个用户(库名可以不加单引号)

mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'xuexi1';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'xuexi1';
Query OK, 0 rows affected (0.00 sec)

mysql> quit

11.检查创建的数据库用户是否正确

[root@xuexi-001 webapps]# mysql -uzrlog -h127.0.0.1 -pxuexi1
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 5
Server version: 5.6.36 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, 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 database;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'database' at line 1
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| test               |
| zrlog              |
+--------------------+
3 rows in set (0.00 sec)

  • 在执行 show databases; 命令后,会只看到zrlog

12.接下来就是在浏览器访问IP打开的网页,填写数据库的信息(系统信箱自定义即可),之后就能访问了,密码为 xuexi1

13.正常访问搭建的博客,并可以在文章后台发布文章

总结

1.首先部署环境,tomcat加jdk 2.部署完环境后,下载zrlog的war包过来 3.把war包放到appbase里面,它会自动的帮你解压,解压成一个目录,这个目录就是我们需要项目 4.配置一个数据库,对应的用户,数据库,密码 5.但这种访问,还需要在后面加一个目录

###搭建好zrlog(测试用docBase指定路径,访问是否生效)

1.在搭建好zrlog后,在访问这个博客的时候,不想要这个目录,比如访问 192.168.5.130/zrlog/ ,去掉zrlog这个目录,直接用域名去访问

2.查看tomcat是配置文件,在配置文件中已经创建了一个新的虚拟主机,域名叫做www.123.cn,appbase没有去定义,也就是说不需要弄任何的war包过来,但定义了一个docbase,docbase就是一个目录,这里面不需要设置任何的war包,而是war包解压完的目录放进去

<Host name="www.123.cn" appBase=""
##域名为www.123.cn,appbase后为空,就不会于docBase相互干扰
        unpackWARs= "true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/>
## 自定义站点路径,不使用自动安装war的方式
</Host>

3.创建/data/wwwroot/123.cn/目录

[root@xuexi-001 webapps]# mkdir /data/wwwroot/123.cn

4.然后把appbase下的zrlog目录下的所有文件,全部移动到docbase下的/data/wwwroot/123.cn/目录下

[root@xuexi-001 webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/

5.绑定hosts,在window物理机的hosts文件中,加入虚拟机的IP和网址

192.168.5.130   www.123.cn

6.在windows物理机上ping www.123.cn,如果放到到的的虚拟机上,就可以去访问它了

7.然后重启tomcat服务

  • /usr/local/tomcat/bin/shutdown.sh
  • /usr/local/tomcat/bin/startup.sh
[root@xuexi-001 webapps]# /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/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@xuexi-001 webapps]# /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/jre
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Tomcat started.

8.查看端口

[root@xuexi-001 webapps]# netstat -lntp |grep 80
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      1080/master         
tcp6       0      0 :::80                   :::*                    LISTEN      1863/java           
tcp6       0      0 ::1:25                  :::*                    LISTEN      1080/master         
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      1863/java           
tcp6       0      0 :::41480                :::*                    LISTEN      851/rpc.statd       
tcp6       0      0 :::8009                 :::*                    LISTEN      1863/java   

9.浏览器访问www.123.cn ,按ctrl+f5刷新

16.8 Tomcat日志扩展

  • ls /usr/local/tomcat/logs
[root@xuexi-001 ~]# ls /usr/local/tomcat/logs
catalina.2018-08-30.log      localhost.2018-08-30.log
catalina.out                 localhost_access_log.2018-08-30.txt
host-manager.2018-08-30.log  manager.2018-08-30.log
[root@xuexi-001 ~]# cd /usr/local/tomcat/logs/
[root@xuexi-001 logs]# less catalina.out 
  • tomcat日志分为四种
  • 其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。
  • 一般关注其中的错误信息
  • 其中catalina.2017-xx-xx.log和catalina.out内容相同,前者会每天生成一个新的日志。
  • host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
  • localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
  • 访问日志默认不会生成,需要在server.xml中配置一下。
  • 具体方法是在对应虚拟主机的<Host></Host>里面加入下面的配置(假如域名为123.cn):
<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" />
  • prefix定义访问日志的前缀,suffix定义日志的后缀,pattern定义日志格式。新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。

© 著作权归作者所有

共有 人打赏支持
Linux学习笔记
粉丝 4
博文 47
码字总数 127512
作品 0
临汾
《Linux应用大全 服务器架设》一书,讲述众多服务器配置

《Linux应用大全 服务器架设》介绍了Linux服务器配置各方面的知识,主要包括网络配置文件和网络命令、OpenSSH、VNC、NFS、Samba、DHCP、DNS、Apache、Tomcat、Nginx、SVN、Vsftpd、Sendmail、...

airfish2000
2015/12/22
0
0
新书上架:《Spring Boot 开发实战》基于 Kotlin + Gradle + Spring Boot 2.0 的企业级服务端开发实战

新书上架:《Spring Boot 开发实战》 — 基于 Kotlin + Gradle + Spring Boot 2.0 的企业级服务端开发实战 京东下单链接 https://item.jd.com/31178320122.html 天猫下单链接 https://detail...

程序员诗人
08/22
0
0
新书上架:《Spring Boot 开发实战》(基于 Kotlin + Gradle + Spring Boot 2.0 的企业级服务端开发实战)

新书上架:《Spring Boot 开发实战》 — 基于 Kotlin + Gradle + Spring Boot 2.0 的企业级服务端开发实战 京东下单链接 https://item.jd.com/31178320122.html 天猫下单链接 https://detail...

程序员诗人
08/05
0
0
HTTPS 从原理到实战 - 附送 OSChina HTTPS 配置

鉴于最近 OSChina 强制启用 HTTPS 登陆一事,备受关注,我花了点时间,贴出了N久以前写的关于安全性的文章,并又花了点时间把如何申请证书,如何配置Tomcat/Nginx一并解释了一遍,希望对各位...

虫虫
2012/03/01
14.5K
45
《循序渐进Linux》第二版即将出版发行(附封面)

从《循序渐进Linux》第一版发布,到现在已经近6年了,6年的时间,技术发生了很大的变化,Linux系统的内核版本从2.6.9(RHEL4.x)已经更新到了现在的3.10(Centos7.x),第一版中的部分内容已经...

南非蚂蚁
2015/12/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

谈谈如何学Linux和它在如今社会的影响

昨天,还在农耕脑力社会,今天已经人工智能技术、大数据、信息技术的科技社会了,高速开展并迅速浸透到当今科技社会的各个方面,Linux日益成为人们信息时代的到来,更加考验我们对信息的处理程...

linuxCool
19分钟前
0
0
SpringBoot内置定时任务

springBoot内置定时任务 应用场景 业务监控,定时发送邮件,定时删除缓存等等。 Spring Boot 内置定时 pom 包配置 <dependencies> <dependency> <groupId>org.springframework.b......

Grittan
23分钟前
5
1
在 Linux 中基于密钥认证的 SSH的配置方法

什么是基于 SSH 密钥的认证? 众所周知,Secure Shell,又称 SSH,是允许你通过无安全网络(例如 Internet)和远程系统之间安全访问/通信的加密网络协议。无论何时使用 SSH 在无安全网络上发...

linuxprobe16
40分钟前
0
0
sed命令

10月17日任务 9.4/9.5 sed 1.sed(上)(下) 1.sed 匹配功能 #sed -n ‘/root/’ p test.txt 将带有root的内容打印出来 同时支持 . * 还有 + 不过需要脱译,或者在前面选项加r。 支持{ } 支...

hhpuppy
51分钟前
1
0
day120-20181018-英语流利阅读-待学习

千禧一代注意了:一大波公司正向你的钱包袭来 Daniel 2018-10-18 1.今日导读 这几年,你有没有发现,不管是在微信公众号还是在抖音,有越来越多的商家和品牌开始玩起了网络用语和表情包,从卖...

飞鱼说编程
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部