一、配置Tomcat监听80端口,因为在访问tomcat的网页时须要在网址后面加上:8080的端口,而要想直接访问的话,则须要修改成80的端口便可:java
1:配置Tomcat监听80端口: 修改配置文件: /usr/local/tomcat/conf/server.xmlmysql
[root@localhost_002 tomcat]# vim /usr/local/tomcat/conf/server.xml #<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> 把这一行修改成: <Connector port="80" protocol="HTTP/1.1"
2:而后重启启动apache服务: /usr/local/tomcat/shutdown.shweb
[root@localhost_002 tomcat]# /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_002 tomcat]# /usr/local/tomcat/bin/startup.sh
注释:发现重启apache时没有起来,查看日记后而且监听端口80已经被占用:信息以下:sql
[root@localhost_002 tomcat]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:52588 0.0.0.0:* LISTEN 871/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1081/master tcp6 0 0 :::52588 :::* LISTEN 871/sshd tcp6 0 0 :::80 :::* LISTEN 1212/httpd tcp6 0 0 ::1:25 :::* LISTEN 1081/master tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1795/java tcp6 0 0 :::8009 :::* LISTEN 1795/java tcp6 0 0 :::3306 :::* LISTEN 1094/mysqld
注释:发现80端口已经被apache(http)占用,能够说明当80端口被占用时,其他须要80端口的服务就没法启动了,其而且查看其访问日记以下:数据库
[root@localhost_002 logs]# tail -f catalina.2018-08-30.log at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:353) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:493) 30-Aug-2018 22:06:12.330 信息 [main] org.apache.coyote.AbstractProtocol.stop Stopping ProtocolHandler ["ajp-nio-8009"] 30-Aug-2018 22:06:12.331 信息 [main] org.apache.coyote.AbstractProtocol.destroy Destroying ProtocolHandler ["ajp-nio-8009"]
3:解决办法:须要关闭apache服务,而后在从新启动Tomcat:apache
[root@localhost_002 logs]# /usr/local/apapche2.4/bin/apachectl stop #关闭apache服务: [root@localhost_002 logs]# /usr/local/tomcat/bin/shutdown.sh #关闭tomcat服务: [root@localhost_002 logs]# /usr/local/tomcat/bin/shutdown.sh #启动tomcat服务: [root@localhost_002 logs]# netstat -lntp #查看其监听端口: Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:52588 0.0.0.0:* LISTEN 871/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1081/master tcp6 0 0 :::52588 :::* LISTEN 871/sshd tcp6 0 0 :::80 :::* LISTEN 1972/java tcp6 0 0 ::1:25 :::* LISTEN 1081/master tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1972/java tcp6 0 0 :::8009 :::* LISTEN 1972/java tcp6 0 0 :::3306 :::* LISTEN 1094/mysqld
注释:发现tomcat服务能够正常启动,而且其端口为80:bootstrap
二、配置Tomcat的虚拟主机:一个服务器支持一个IP能够访问多个域名,每一个域名表明一个网站,即一个虚拟主机:vim
1:修改其Tomcat的配置文件: /usr/local/tomcat/conf/server.xml #新增配置文件:浏览器
[root@localhost_002 ROOT]# vim /usr/local/tomcat/conf/server.xml </Host> <Host name="www.123.cn" appBase="" #核心文件1: name是定义域名, appBase是定义应用的目录: unpackWARs= "true" autoDeploy="true" #核心文件2: unpackWARs定义是否自动解压WAR包在appBase,autoDeploy表示tomcat服务运行时可以检测appBase下的文件,当有新的web应用加入进来,会自动发布这个应用: xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/data/wwwroot/123.cn/" debug="0" reloadable="true" crossContext="true"/> </Host> </Engine> </Service> </Server>
注释:核心配置文件只有如下四行:tomcat
name="www.123.cn" 表示指定域名:
appBase=" " 定义tomcat的应用(war文件)存放位置:
unpackWARs= "true" 表示是否自动解压WAR包,当把WAR包放到appBase里面的时候会自动解压的:true则是解压:
docBase="/data/wwwroot/123.cn/" 也能够解压到指定的目录,经过docbase来定义:至关因而把war包解压后的文件放到了这个目录:
若是你不想解压的话,则能够放到appBase目录:能够在使用appBase和docBase二选一,则须要把其中一个设置为空则能够:
注释:定义了docBase后就以该目录为主了:
2:本节咱们经过部署一个java的博客应用来体会下appBase和docBahse目录的应用:
1:下载这个war包的程序zrlog: wget http://d1.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war
[root@localhost_002 src]# wget http://dl.zrlog.com/release/zrlog-1.7.1-baaecb9-release.war 已发出 HTTP 请求,正在等待回应... 200 OK 长度:7122027 (6.8M) [application/zip] 正在保存至: “zrlog-1.7.1-baaecb9-release.war” 100%[===========================================================================================>] 7,122,027 4.12MB/s 用时 1.6s 2018-08-30 23:21:57 (4.12 MB/s) - 已保存 “zrlog-1.7.1-baaecb9-release.war” [7122027/7122027])
2:把下载后的文件挪位置到tomcat: /usr/local/tomcat/webapps/
[root@localhost_002 src]# cp zrlog-1.7.1-baaecb9-release.war /usr/local/tomcat/webapps/
3:此时会发现webapps里的zrlog的已经自动解压到了目录: #这得益于我定义的unpackWARs="true"
[root@localhost_002 webapps]# ls docs examples host-manager manager ROOT zrlog-1.7.1-baaecb9-release zrlog-1.7.1-baaecb9-release.war
注释:可是若是咱们挪走了这个目录,解压后的目录也会消失,因此咱们须要修更名称,由于若是下面安装博客时,会自动覆盖和解压到此目录:
注释:ROOT目录下主要放一些图片之类的,若是网站涉及到一些图片之类的,能够放在此目录下:
[root@localhost_002 webapps]# mv zrlog-1.7.1-baaecb9-release zrlog
4:此时咱们在浏览器里访问,会出现安装向导: http://192.168.149.130/zrlog
5:在mysql建立相关数据库和用户: /usr/local/mysql/bin/mysql
[root@localhost_002 webapps]# /usr/local/mysql/bin/mysql #进入mysql数据库: mysql> create database zrlog; #建立zrlog数据库: Query OK, 1 row affected (0.04 sec) mysql> grant all on zrlog.* to 'zrlog'@127.0.0.1 identified by 'nihao123!'; #建立zrlog用户: Query OK, 0 rows affected (0.13 sec) mysql> quit Bye [root@localhost_002 webapps]# /usr/local/mysql/bin/mysql -uzrlog -h127.0.0.1 -pnihao123! #测试用户: mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | test | | zrlog | +--------------------+ 3 rows in set (0.07 sec) mysql> quit Bye
注释:首先创进入mysql后,并建立数据库和对应用户,而后测试当前用户是否能够登陆:
由图例看到,咱们进入mysql经过绝对路径进入,能够把mysql加入到绝对路径后,能够经过mysql直接登陆:以下:
通常有临时修改和永久修改两种办法,以下:
[root@localhost_02 ~]# /usr/local/mysql/bin/mysql mysql> quit Bye #临时添加绝对路径,重启后失效: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/root/bin:/usr/local/mysql/bin [root@localhost_02 ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/root/bin:/usr/local/mysql/bin #永久添加绝对路径,需修改/etc/profile文件:加入以下一行: [root@localhost_02 ~]# vim /etc/profile PATH=$PATH:/usr/local/jdk1.8/bin:/usr/local/jdk1.8/jre/bin:/usr/local/mysql/bin [root@localhost_02 ~]# mysql mysql> quit Bye
6:而后把相关信息(mysql数据库名和密码)输入到博客的页面,以下:
7:而后点击下一步:设置管理员密码:admin,还有网站标题:子标题:
8:点击下一步后,查看你的网站,以下:
3:因为访问是经过192.168.149.130/zrlog(IP加域名)访问,那怎么设置经过IP地址直接访问该博客,设置以下:
因为在以前的时候定义过docBase,而docBase是直接存放解压后的war文件: 以下:
<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的目录在/data/wwwroot/123.cn/目录下,全部须要把zrlog里的全部文件挪位置到docBase所定义的目录下才能够:以下:
[root@localhost_02 tomcat]# mkdir /data/wwwroot/123.cn [root@localhost_02 tomcat]# mv webapps/zrlog/* /data/wwwroot/123.cn/ [root@localhost_02 tomcat]# ls !$ ls /data/wwwroot/123.cn/ admin assets error favicon.ico include install META-INF WEB-INF
1:而后须要重启启动服务,而且须要等8005端口(管理)起来后才能够访问:
[root@localhost_02 tomcat]# /usr/local/tomcat/bin/shutdown.sh #关闭: [root@localhost_02 tomcat]# /usr/local/tomcat/bin/startup.sh #启动: [root@localhost_02 tomcat]# netstat -lntp|grep java tcp6 0 0 :::80 :::* LISTEN 2843/java tcp6 0 0 127.0.0.1:56178 :::* LISTEN 2864/java tcp6 0 0 127.0.0.1:46178 :::* LISTEN 2864/java tcp6 0 0 127.0.0.1:26178 :::* LISTEN 2864/java tcp6 0 0 127.0.0.1:8005 :::* LISTEN 2843/java tcp6 0 0 :::8009 :::* LISTEN 2843/java
2:访问测试:在浏览器输入域名:www.123.cn 注释:须要在物理机绑定hosts:
注释:可能会启动一些其余的端口,这是一些其余的应用端口了:
三、Tomcat日记:有四类日记: /usr/local/tomcat/logs
[root@localhost_02 tomcat]# ls logs/ catalina.2018-08-30.log host-manager.2018-08-31.log manager.2018-08-31.log catalina.2018-08-31.log catalina.out manager.2018-08-30.log localhost.2018-08-31.log localhost_access_log.2018-08-30.txt
cattalina开头的日记为tomcat的综合日记,记录tomcat的服务相关信息,也记录错误日记:
注释:其中catalina.2018.xx-xx.log和catalina.out内容相同,前者是天天会生成一个新的日记:
host-manager和manager为管理相关日记,其中host-manager为虚拟主机的日记:
localhost和localhost_access为虚拟主机相关日记,其中带access字的是访问日记,不带access字的为错误日记:访问日记默认没有,须要配置:
配置访问日记: /usr/local/tomcat/conf/server.xml
<Host name="www.zrlog.cn" appBase="" unpackWARs= "true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="/data/wwwroot/zrlog.cn/" debug="0" reloadable="true" crossContext="true"/> #下面的内容是日记格式: <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="www.zrlog.cn_access" suffix=".log" pattern="%h %l %u %t "%r" %s %b" /> </Host>
核心参数:<Valve/> 说明: prefix定义访问日志的前缀; suffix定义日志的后缀; pattern定义日志格式。 新增长的虚拟主机默认并不会生成相似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最须要关注catalina.out,当出现问题时,咱们应该第一想到去查看它。