8月29日任务
16.1 Tomcat介绍
16.2 安装jdk
16.3 安装Tomcat
扩展
java容器比较 http://my.oschina.net/diedai/blog/271367
http://www.360doc.com/content/11/0618/21/16915_127901371.shtml
j2ee、j2se、ejb、javabean、serverlet、jsp之间关系 http://bbs.csdn.net/topics/50015576
tomcat的介绍
tomcat是解析java程序。tomcat是Apache软件基金会的jakarta项目中的一个核心项目。 tomcat技术先进,性能稳定而且免费,得到部分开发商的认可,成为目前比较流行的web应用服务器。
tomacat是一个轻量级的应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试java程序的首选。
配置好apache服务器之后,可利用它响应对html页面的访问请求。tomact部分是apache服务器的扩展,是独立运行的,运行tomact时,是作为一个独立的进程运行的。
2.安装tomact
tomact的安装分为两部分jdk和安装tomact两个步骤。jdk是针对java开发的产品。jdk是整个java的核心,包括了java运行环境、java工具和java基础类的类库。运行java必须安装jdk。
3.安装jdk。
下载地址:http://r.aminglinux.com
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
先通过windows机器下载jdk,通过ftp上传到linux机器。放到/usr/local/src目录下,然后解压。
cd /usr/local/src
tar zxvf jdk-8u181-linux-x64.tat.gz
[root@aminglinux-128 src]# mv jdk1.8.0_181 /usr/local/jdk1.8
[root@aminglinux-128 src]# vim /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
上例为添加得内容
设置环境变量
https://coding.net/u/aminglinux/p/aminglinux-book/git/tree/master/D
执行命令生效
[root@aminglinux-128 src]# java -version openjdk version "1.8.0_171" OpenJDK Runtime Environment (build 1.8.0_171-b10) OpenJDK 64-Bit Server VM (build 25.171-b10, mixed mode)
[root@aminglinux-128 src]# which java /usr/bin/java
上例说明这是rpm的jdk。
[root@aminglinux-128 src]# mv /usr/bin/java /usr/bin/java_bak [root@aminglinux-128 src]# source /etc/profile [root@aminglinux-128 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)
上例中临时处理。
4.安装tomcat
cd /usr/local/src/
[root@aminglinux-128 src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.33/bin/apache-tomcat-8.5.33.tar.gz
[root@aminglinux-128 src]# mv apache-tomcat-8.5.33 /usr/local/tomcat
[root@aminglinux-128 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.
上例启动tomcat.
查看是否成功
[root@aminglinux-128 src]# ps aux |grep tomcat
开机启动,需要把启动命令放到/etc/rc.d/rc.local文件里。
[root@aminglinux-128 src]# echo "/usr/local/tomcat/bin/startup.sh" >> /etc/rc.d/rc.local
[root@aminglinux-128 src]# chmod a+x /etc/rc.d/rc.local
5.配置tomcat
tomcat默认启动的端口是8080,修改为80,修改server.xml文件。
[root@aminglinux-128 src]# vim /usr/local/tomcat/conf/server.xml
重启tomcat
[root@aminglinux-128 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@aminglinux-128 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.
tomcat使用8080端口,nginx使用80端口。访问tomcat,需要使用nginx代理。
6.tomcat的虚拟主机
打开配置文件
[root@aminglinux-128 src]# vim /usr/local/tomcat/conf/server.xml
其中
[root@aminglinux-128 src]# ls /usr/local/tomcat/webapps/ROOT/ asf-logo-wide.svg bg-middle.png bg-nav.png favicon.ico RELEASE-NOTES.txt tomcat.gif tomcat-power.gif WEB-INF bg-button.png bg-nav-item.png bg-upper.png index.jsp tomcat.css tomcat.png tomcat.svg
index.jsp就是tomcat的默认页面。用curl命令访问tomcat.gif图片。
[root@aminglinux-128 src]# curl localhost:8080/tomcat.gif -I HTTP/1.1 200 Accept-Ranges: bytes ETag: W/"2066-1534062089000" Last-Modified: Sun, 12 Aug 2018 08:21:29 GMT Content-Type: image/gif Content-Length: 2066 Date: Wed, 29 Aug 2018 07:51:56 GMT
增加一个新的虚拟主机
https://coding.net/u/aminglinux/p/aminglinux-book/git/tree/master/D
增加虚拟机代码
创建目录和测试文件测试,
[root@aminglinux-128 src]# mkdir /data/tomcatweb [root@aminglinux-128 src]# echo "Tomcat test page." > /data/tomcatweb/1.html
重启tomcat
[root@aminglinux-128 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@aminglinux-128 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.
7.测试tomcat解析jsp
创建jsp的测试页面
[root@aminglinux-128 ~]# vim /data/tomcatweb/111.jsp
Now time is: <%=new java.util.Date()%>
上例为插入的内容
[root@aminglinux-128 ~]# curl -x127.0.0.1:8080 www.123.cn/111.jspNow time is: Fri Aug 31 11:13:32 CST 2018
上例中中间的那行代码被解析成当前系统的时间了。
7.tomcat日志
tomcat的日志目录为/usr/local/tomcat/logs,主要有四大类日志:
[root@aminglinux-128 ~]# cd /usr/local/tomcat/logs [root@aminglinux-128 logs]# ls catalina.2018-08-29.log host-manager.2018-08-29.log localhost_access_log.2018-08-29.txt manager.2018-08-29.log catalina.out localhost.2018-08-29.log localhost_access_log.2018-08-31.txt
其中catalina开头的日志为tomcat的总和日志,它记录tomcat服务相关信息,也会记录错误日志。
其中catalina.2018-08-29.log和catalina.out内容相同,前者会生成一个新的日志。
host-manager和manager为管理相关的日志,其中host-manager为虚拟主机的管理日志。
localhost和localhost_access为虚拟主机相关日志,其中带access字样的日志为访问日志,不带access字样的为默认主机的错误日志。
访问日志默认不会生成,需要在server.xml中配置一下。对应虚拟主机的
vim server.xml
lassName="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,当出现问题时,我们应该第一想到去查看它。