57.tomcat介紹 安裝jdk和tomcat
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埠