第16章 Tomcat配置

16.1 Tomcat介紹

Tomcat介紹

  • LNMP架構針對的開發語言是PHP語言,php 是一門開發web程序很是流行的語言,早些年流行的是asp,在Windows平臺上運行的一種編程語言,但安全性差,就網站開發人員就開始轉到php,並且php相對的比較安全php

  • java是一門比較龐大的開發語言,不只能夠開發建站,也能夠開發大型軟件工具和遊戲html

Tomcat介紹java

1.Tomcat是Apache軟件基金會(Apache Software Foundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其餘一些公司及我的共同開發而成。mysql

2.java程序寫的網站用tomcat+jdk來解析、運行linux

3.tomcat是一箇中間件,用來運行java語言寫的網站,真正起做用的,解析java腳本的是jdknginx

4.jdk(java development kit)是整個java的核心,它包含了java運行環境和一堆java相關的工具以及java基礎庫。 5.最主流的jdk爲sun公司發佈的jdk,除此以外,其實IBM公司也有發佈JDK,CentOS上也能夠用yum安裝openjdkweb

  • java寫的網頁是jsp後綴,解析須要jdk

16.2 安裝jdk

安裝jdk目錄概要redis

  • 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的環境變量sql

2.jdk版本目前有1.六、1.七、1.8,簡稱爲六、七、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,當出現問題時,咱們應該第一想到去查看它。
相關文章
相關標籤/搜索