课程名称:16.4 配置Tomcat监听80端口
笔记内容:
自定义端口
编辑配置文件
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
此处控制8080端口
更改为80端口
重启服务
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
查看进程是否开启,监听端口是否更改
课程名称:配置Tomcat的虚拟主机(上)(中)(下)
笔记内容:
虚拟主机:一台服务器上或者一个websever可以支持一个IP下面可以访问多个域名,每一个域名代表着一个网站,可以配置多个网站,每个网站的配置文件都是一个虚拟主机
第一步配置主配置文件
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
查看这部分就表示虚拟注主机定义:
其中<Host>和</Host>之间的配置为虚拟主机配置部分,name定义域名,
appBase定义应用的目录,Java的应用通常是一个war的压缩包,你只需要将war的压缩包放到appBase目录下面即可。刚刚阿铭访问的Tomcat默认页其实就是在appBase目录下面,不过是在它子目录ROOT里。
docBase,这个参数用来定义网站的文件存放路径,如果不定义,默认是在appBase/ROOT下面,定义了docBase就以该目录为主了,其中appBase和docBase可以一样。在这一步操作过程中很多同学遇到过访问404的问题,其实就是docBase没有定义对。
appBase为应用存放目录,通常是需要把war包直接放到该目录下面,它会自动解压成一个程序目录
注:appBase默认路径:[root@localhost ~]# ls /usr/local/tomcat/webapps/
(虚拟主机编辑开始)<Host name="localhost"(域名) appBase="webapps"(其实appBase是指定的一个目录,应用项目在哪里,搭建了一个Tomcat,要想去跑一个网站,网站放在哪里,不能是一个传统目录,Apache/Nginx需要指定一个目录DocumentRoot和Root,目录中存放着PHP的文件、Html文件,然后可以访问;而Tomcat需要提供war的包(压缩文件),文件中包含着运行网站的一些文件,包括配置、JSP代码、和数据库相关、图片、静态,war打包文件需要放在webapps里面,这里是appBase定义;也可以单独指定一个目录,目录中存放着JSP文件,但是不是一个war包,需要docBase定义;webapps是个目录,她是个相对路径与server.xml这个配置文件)
unpackWARs="true"(是否自动解压WAR包,WAR包放在webapps里面会自动解压) autoDeploy="true">(autoDeploy 如果此项设为true,表示Tomcat服务处于运行状态时,能够监测appBase下的文件,如果有新有web应用加入进来,会自运发布这个WEB应用)
<!-- 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 "%r" %s %b" />
(虚拟主机编辑结束) </Host>
自定义虚拟主机:
解析:
<Host name="www.123.cn"(域名) appBase=""(可以不定义,但是需要定义docBase,其实appBase也是定义一个目录)
unpackWARs= "true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path=""(context标签是用来指定自定义的网站的url,以及映射实际的在系统的物理路径。例如:<Context path="/abc" docBase="/www/a.war" reloadable="true" />时,我们访问www.xxx.com/abc代替www.xxx.com/a) docBase="/data/wwwroot/123.cn/"(如果不定义 appBase,不想让WAR包存在,可以定义一个目录,目录中放网站程序,目录里相当于WAR包解压完存放的文件) debug="0" reloadable="true"(这个属性非常重要,如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,我们可以在不重起tomcat的情况下改变应用程序) crossContext="true"/>
</Host>
内容重写:
</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>
总结:appBase和docBase都是指定虚拟主机的目录,appBase是存放war包(压缩文件),war包包含了运行网站的一些文件,包括配置、JSP代码、和数据库相关、图片、静态,如果定义appBase就不需要定义docBase,但是需要 unpackWARs= "true" (自动解压) autoDeploy="true"(自动发布);如果不定义appBase则需要增加docBase,目录中放网站程序,目录里相当于WAR包解压完存放的文件;两者二选一,如果同时存在,可以在配置文件中写空,如:appBase="",防止相互干扰,如果出现404状态码有可能就是这两者没有定义对
测试部署一个java的应用
PHP发布博客可以使用workpress
JAVA发布博客可以使用ZrLog
1.首先[root@localhost ~]# cd /usr/local/src/
2.官网下载地址:http://dl.zrlog.com/release/
下载(官网会自动选择最新版本下载):
[root@localhost src]# wget http://dl.zrlog.com/release/zrlog.war
官网下载地址:
http://dl.zrlog.com/release/
官网安装过程:https://blog.zrlog.com/post/how-to-install-zrlog
3.war包.拷贝至appBase目录下
appBase目录下会自动解压war包
注:appBase默认路径:[root@localhost ~]# ls /usr/local/tomcat/webapps/
拷贝:[root@localhost ~]# cp /usr/local/src/zrlog.war /usr/local/tomcat/webapps/
已经自动解压
4.安装博客
浏览器访问http://183.131.3.206/zrlog/
首先检查mysql 服务是否启动
进入数据库创建zrlog库
[root@localhost ~]# /usr/local/mysql5.6/bin/mysql -uroot -p'ys@2018'
mysql> create database zrlog;
创建用户可以管理登陆zrlog库
mysql> grant all on zrlog.* to 'zjsw205'@127.0.0.1 identified by 'zjsw205';
需求直接域名访问(使用新建的虚拟主机域名):
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
创建网站目录
[root@localhost ~]# mkdir /data/wwwroot/123.cn/
将zrlog所有文件移到docBase目录下
[root@localhost ~]# mv /usr/local/tomcat/webapps/zrlog/* /data/wwwroot/123.cn/
访问页面错误
排错:
因为服务没有重启
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
多了几个端口是因为搞了几个网站、应用
正常访问
Webapps默认访问的是ROOT目录
Index.jsp就是默认访问首页
自定义的appBase目录要想访问里面的东西如图片也需要ROOT目录,自定义的图片、静态文件、jsp文件等放到ROOT目录下,才能正常访问
课程名称:16.8 Tomcat日志
笔记内容:
Tomcat日志位置:[root@localhost ~]# ls /usr/local/tomcat/logs/
四类日志:
其中catalina开头的日志为Tomcat的综合日志,它记录Tomcat服务相关信息,也会记录错误日志。其中catalina.2017-xx-xx.log和catalina.out(重要日志)内容相同,前者会每天生成一个新的日志。
host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认虚拟主机的错误日志。
访问日志默认不会生成,需要在server.xml中配置一下。
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml
directory=相对路径
prefix=日志前置 suffix=日志后缀
配置新增虚拟主机访问日志
Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="123.cn_access" suffix=".log"
pattern="%h %l %u %t "%r" %s %b" />
配置完后重启服务
[root@localhost ~]# /usr/local/tomcat/bin/shutdown.sh
[root@localhost ~]# /usr/local/tomcat/bin/startup.sh
注:prefix定义访问日志的前缀,suffix定义日志的后缀,pattern定义日志格式。新增加的虚拟主机默认并不会生成类似默认虚拟主机的那个localhost.日期.log日志,错误日志会统一记录到catalina.out中。关于Tomcat日志,你最需要关注catalina.out,当出现问题时,我们应该第一想到去查看它。