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 server.xml配置详解 http://blog.csdn.net/yuanxuegui2008/article/details/6056754
tomcat常用数据库连接的方法 http://wjw7702.blog.51cto.com/5210820/1109263
16.1 Tomcat介绍:
之前已经学过了LAMP、LNMP,这是针对的php语言(针对web开发非常流行的语言)。早期流行的是ASP(在windows平台上运行的编程语言,但是针对他的不安全性,越来越多的人去php开发网站)。
那么还有一种语言是JAVA(是一种非常庞大的开发语言)。不仅仅可以开发网站的程序,也可以开发大型的软件、工具甚至游戏。
~1.Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。
~2.java程序写的网站用tomcat+jdk来运行
当然php写的要用php解析
~3.tomcat是一个中间件,真正起作用的,解析java脚本的是jdk
~4.jdk(java development kit)是整个java的核心,它包含了java运行环境和一堆java相关的工具以及java基础库。
~5.最主流的jdk为sun公司发布的jdk,除此之外,其实IBM公司也有发布JDK,CentOS上也可以用yum安装openjdk
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16.2 安装jdk:
~1.jdk版本1.6,1.7,1.8
~2.官网下载地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
~3.下载jdk8,放到/usr/local/src/目录下
~4.tar zxvf jdk-8u144-linux-x64.tar.gz
~5.mv jdk1.8.0_144 /usr/local/jdk1.8
~6.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
~7.source /etc/profile
~8.java -version 检验jdk有没有安装成功
实例:
在xshell界面下按Ctrl+Alt+F,开启xftp。将下号的这个jdk包先拖到root下来
[root@afeilinux-01 ~]# cd /usr/local/src/ 回到linux上来,cd到src下
[root@afeilinux-01 src]# mv /root/jdk-8u181-linux-x64.tar.gz . mv到src下
[root@afeilinux-01 src]# ls 看一下是否有这个tar包
apr-1.6.5 apr-util-1.6.1.tar.gz jdk-8u101-linux-x64.tar.gz nginx-1.8.0.tar.gz php-5.6.32.tar.gz phpredis-develop
apr-1.6.5.tar.gz httpd-2.4.39 mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz p7zip_9.13_src_all.tar.bz2 php-7.1.6 phpredis-develop.zip
apr-util-1.6.1 httpd-2.4.39.tar.gz nginx-1.8.0 php-5.6.32 php-7.1.6.tar.bz2
[root@afeilinux-01 src]# tar -xvf jdk-8u101-linux-x64.tar.gz
[root@afeilinux-01 src]# du -sh jdk1.8.0_101/
352M jdk1.8.0_101/
[root@afeilinux-01 src]# mv jdk1.8.0_101 /usr/local/jdk1.8 挪地方改名字
[root@afeilinux-01 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
[root@afeilinux-01 src]# source /etc/profile source一下,让他生效
[root@afeilinux-01 src]# java -version 检验jdk有没有安装成功。出现一下结果表示没问题
java version "1.8.0_101" 是不是我们安装的那个版本
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
[root@afeilinux-01 src]# rpm -qa |grep openjdk
假如出来的不是以上的结果。比如版本不一致,或者什么openjdk,先看一下是不是安装过openjdk这个包。使用这个命令搜一下。如果真的出现这个问题,安装了这个包,那么可以卸载他,但前提是我们是我们做实验的虚拟机上的。
在生产环境中如果出现这种情况,rpm -pa的时候有这个包。不要随便的卸载一个包,是因为系统里可能有一个程序在使用openjdk。
[root@afeilinux-01 src]# yum list |grep openjdk 可以看一下这个包。有很多的版本。加入想安装1.8的,就把java-1.8.0-openjdk.x86_64这个安装上,也可以将他的1.8的全部安装上。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
16.3 安装Tomcat:
tomcat是一个中间件,真正起作用的是jdk,但是没有tomcat还不行。没有办法去监听80或者8080端口,也没有办法让客户端或者说浏览器直接去访问这个站点。因为没有webserver,这个Tomcat就是webserver。只不过他需要依赖jdk
~1.cd /usr/local/src
~2.wget http://apache.fayea.com/tomcat/tomcat-8/v8.5.29/bin/apache-tomcat-8.5.43.tar.gz
~3.tar zxvf apache-tomcat-8.5.43.tar.gz
~4.mv apache-tomcat-8.5.43 /usr/local/tomcat
~5./usr/local/tomcat/bin/startup.sh
就可以直接启动起来了
~6.ps aux|grep tomcat
~7.netstat -lntp |grep java
~8.三个端口:
8080为提供web服务的端口(平时用的。比如在浏览器上做测试就用:8080)
8005为管理端口(有时候会启动很慢)
8009端口为第三方服务调用的端口,比如httpd和Tomcat结合时会用到(作为了解)
实例:
先去官网下载tomcat8:
[root@afeilinux-01 src]# ls
apache-tomcat-8.5.43 apr-1.6.5 apr-util-1.6.1.tar.gz jdk-8u101-linux-x64.tar.gz nginx-1.8.0.tar.gz php-5.6.32.tar.gz phpredis-develop
apache-tomcat-8.5.43-src.tar.gz apr-1.6.5.tar.gz httpd-2.4.39 mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz p7zip_9.13_src_all.tar.bz2 php-7.1.6 phpredis-develop.zip
apache-tomcat-8.5.43.tar.gz apr-util-1.6.1 httpd-2.4.39.tar.gz nginx-1.8.0 php-5.6.32 php-7.1.6.tar.bz2
[root@afeilinux-01 src]# tar -xvf apache-tomcat-8.5.43.tar.gz
[root@afeilinux-01 src]# mv apache-tomcat-8.5.43 /usr/local/tomcat
[root@afeilinux-01 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@afeilinux-01 src]# ps aux|grep java 同样会开启java
root 1627 4.0 7.4 2290196 73904 pts/0 Sl 11:00 0:03 /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 1684 0.0 0.0 112724 988 pts/0 R+ 11:02 0:00 grep --color=auto java
[root@afeilinux-01 src]# netstat -lntp |grep java 会开启以下三个端口
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 1627/java
tcp6 0 0 :::8009 :::* LISTEN 1627/java
tcp6 0 0 :::8080 :::* LISTEN 1627/java
[root@afeilinux-01 src]# systemctl stop firewalld 关闭防火墙(为的是在浏览器上访问8080)
[root@afeilinux-01 src]# systemctl disable firewalld 并不开机启动
[root@afeilinux-01 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
在浏览器上访问http://192.168.30.134:8080/ #为8080端口