2018-3-30 14周5次課 配置Tomcat監聽端口、虛擬主機、日誌
變更監聽端口:
編輯server.xml,將Connector port="8080" protocol="HTTP/1.1"修改為Connector port="80" protocol="HTTP/1.1"後,重啟tomcat服務
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh ##重啟tomcat 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@localhost ~]# /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 [root@localhost ~]# netstat -lntp |grep java ##80端口java沒有看到 tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1322/java tcp6 0 0 :::8009 :::* LISTEN 1322/java [root@localhost ~]# netstat -lntp |grep 80 ##80端口被nginx占用了 tcp 0 0 0.0.0.0:43980 0.0.0.0:* LISTEN - tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 854/nginx: master p tcp6 0 0 :::43807 :::* LISTEN - tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1322/java tcp6 0 0 :::8009 :::* LISTEN 1322/java [root@localhost ~]# /etc/init.d/nginx stop Stopping nginx (via systemctl): [ 確定 ] [root@localhost ~]# /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@localhost ~]# /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@localhost ~]# netstat -lntp |grep java tcp6 0 0 :::80 :::* LISTEN 1425/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1425/java tcp6 0 0 :::8009 :::* LISTEN 1425/java
因為默認web服務訪問的是80端口,此時再訪問 http://192.168.65.128/ 就不用跟端口號了
配置虛擬主機:
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
找到Host,就是虛擬主機
<Host>和</Host>之間的配置為虛擬主機配置部分
name 域名
appBase=" " 定義應用的目錄,Java的應用通常是一個war的壓縮包
unpackWARs="true" 是否自動解壓WAR包,拷貝WAR包到webapps目錄中會自動解壓
autoDeploy="true"
添加虛擬主機:
<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類似,appBase是把jsp文件放在WAR包中,而如果不想WAR包的存在,不定義appBase,那麽可以定義一個目錄,目錄裏面放網站的程序,其實就相當於WAR包解壓完的文件放到裏面,而用docBase來定義目錄位置
註意:appBase和docBase只能選擇一個,另一個留空即可
·docBase,這個參數用來定義網站的文件存放路徑,如果不定義,默認是在appBase/ROOT下面,定義了docBase就以該目錄為主了,其中appBase和docBase可以一樣。在這一步操作過程中很多同學遇到過訪問404的問題,其實就是docBase沒有定義對。
·appBase為應用存放目錄,通常是需要把war包直接放到該目錄下面,它會自動解壓成一個程序目錄
·下面我們通過部署一個java的應用來體會appBase和docBase目錄的作用
[root@localhost ~]# cd /usr/local/src/ [root@localhost src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war [root@localhost src]# mv zrlog-1.7.1-baaecb9-release.war /usr/local/src/ [root@localhost src]# ls apache-tomcat-8.5.29.tar.gz jdk-8u161-linux-x64.tar.gz nginx-1.12.2.tar.gz zrlog-1.7.1-baaecb9-release.war httpd-2.2.34 mysql-5.6.36-linux-glibc2.5-x86_64.tar.gz php-5.6.30 httpd-2.2.34.tar.gz nginx-1.12.2 php-5.6.30.tar.bz2 [root@localhost src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/ [root@localhost src]# ls /usr/local/tomcat/webapps/ docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war [root@localhost src]# rm -rf /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release.war [root@localhost src]# !ls ls /usr/local/tomcat/webapps/ docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release [root@localhost src]# mv /usr/local/tomcat/webapps/zrlog-1.7.1-baaecb9-release.war /tmp/ ##移走war包 [root@localhost webapps]# mv zrlog-1.7.1-baaecb9-release zrlog ##改名 [root@localhost webapps]# ls docs examples host-manager manager ROOT zrlog
·瀏覽器中登錄192.168.65.128/zrlog會出現安裝向導
·需要在mysql中創建用戶和數據庫
[root@localhost 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 1 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> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by '123456'; Query OK, 0 rows affected (0.01 sec) mysql> quit Bye [root@localhost webapps]# mysql -uzrlog -h127.0.0.1 -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> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | zrlog | +--------------------+ 3 rows in set (0.00 sec)
填入配置的信息:
下一步
下一步完成安裝
之後就可以進入後臺,寫文章並進行管理了
之前訪問zrlog博客是在192,168,65,128/zrlog,zrlog目錄下訪問,如果不想域名後有目錄,可以按照以下步驟做:
1.在server.xml中新增配置虛擬主機:
[root@localhost webapps]# vim /usr/local/tomcat/conf/server.xml
2.重啟tomcat服務:
[root@localhost 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 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@localhost 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 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started.
3.創建網站目錄,移動zrlog目錄內容到123.cn中
[root@localhost webapps]# mkdir /data/wwwroot/123.cn [root@localhost webapps]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/
4.在hosts中重定向
5.此時訪問www.123.cn,就可以看到之前的博客內容了
不用再進入目錄才能看到博客內容
·日誌目錄:
[root@localhost tomcat]# ls logs/
·其中catalina開頭的日誌為Tomcat的綜合日誌,它記錄Tomcat服務相關信息,也會記錄錯誤日誌。
·其中catalina.2017-xx-xx.log和catalina.out內容相同,前者會每天生成一個新的日誌。
·host-manager和manager為管理相關的日誌,其中host-manager為虛擬主機的管理日誌。
·localhost和localhost_access為虛擬主機相關日誌,其中帶access字樣的日誌為訪問日誌,不帶·access字樣的為默認虛擬主機的錯誤日誌。
[root@localhost tomcat]# cat logs/catalina.out
·訪問日誌默認不會生成,需要在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 "%r" %s %b" />
·prefix定義訪問日誌的前綴,suffix定義日誌的後綴,pattern定義日誌格式。
新增加的虛擬主機默認並不會生成類似默認虛擬主機的那個localhost.日期.log日誌,錯誤日誌會統一記錄到catalina.out中。關於Tomcat日誌,你最需要關註catalina.out,當出現問題時,我們應該第一想到去查看它。
2018-3-30 14周5次課 配置Tomcat監聽端口、虛擬主機、日誌