1、Tomcat介紹html
目前有不少網站是用Java編寫的,因此解析Java程序就必須有相關的軟件來完成,Tomcat就是其中之一java
Tomcat是Apache軟件基金會,的Jakarta項目中的一個核心項目,由apache、sun和其餘一些公司及我的共同開發而成,Tomcat技術先進,性能穩定並且免費,於是深受Java愛好者的喜歡,並獲得部分開發商的承認,成爲目前比較流行的web因公服務器。linux
Java程序寫的網站用Tomcat+jdk來運行的。
nginx
tomcat是一箇中間件,真正起做用的,解析java腳本是jdk。web
jdk(java development kit)是整個Java的核心,它包含了java運行環境的一對java相關的工具以及java基礎庫。apache
最主流的jdk爲sun公司發佈的jdk,初次以外,其實IBM公司也有發佈JDK,Centos上也能夠用yum安裝openjdk。bootstrap
Tomcat是一個輕量級應用服務器,在中小型系統和併發用戶不是不少的場合下廣泛被使用,是開發和調試java程序的首選,對於初學者來講,在一臺機器上配置好Apache服務器以後,可利用它相應HTML頁面的訪問請求。vim
實際上,Tomcat部分是Apache服務器的拓展,但它是獨立運行的,因此當你運行Tomcat時,它是做爲一個獨立的進程運行的。瀏覽器
2、安裝JDKtomcat
jdk版本1.6,1.7,1.8
1、下載jdk:
官網下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
不一樣的操做系統版本使用不一樣的jdk版本
我使用的是
2、解壓jdk:
下載好後,咱們可使用xftp把jdk放到/usr/local/src下
解壓jdk壓縮包:
[root@lnmp ~]# tar zxvf /usr/local/src/jdk-8u151-linux-x64.tar.gz
3、設置環境變量:
[root@lnmp ~]# 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@lnmp ~]# source /etc/profile
檢查jdk有沒有安裝成功,配置是否正確:
[root@lnmp ~]# java -version
若是顯示瞭如下內容,說明配置正確:
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
若是顯示的不一樣,可能系統調用了rpm的openjdk,不要隨便卸載它,系統裏可能有某一個程序在使用它。咱們只須要作一個臨時處理就好:
mv /usr/bin/java /usr/bin/java_bak
source /etc/profile
再次執行
[root@lnmp ~]# java -version,顯示結果就正常了
3、安裝Tomcat
1、安裝Tomcat
[root@lnmp src]# cd /usr/local/src/
[root@lnmp src]# wget https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.24/src/apache-tomcat-8.5.24-src.tar.gz
[root@lnmp src]# tar zxvf apache-tomcat-8.5.24-src.tar.gz
2、啓動Tomcat
由於是二進制包,因此免去了編譯的過程,啓動Tomcat,命令以下:
[root@lnmp bin]# /usr/local/tomcat/bin/startup.sh
在這裏,我遇到了2個錯誤和你們分享一下。
第一個錯誤:
[root@lnmp bin]# /usr/local/tomcat/bin/startup.sh
-bash: /usr/local/tomcat/bin/startup.sh: 權限不夠
這個好解決,我ls -l看了一下bin/的權限,發現全部者沒有x執行權限
[root@lnmp tomcat]# ll
總用量 304
drw-r-xr-x. 2 root root 4096 12月 26 13:49 bin
用下面這條命令則能夠解決:
[root@lnmp tomcat]# chmod -R u+x bin/
第二個錯誤:
[root@lnmp bin]# /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
touch: 沒法建立"/usr/local/tomcat/logs/catalina.out": 沒有那個文件或目錄
/usr/local/tomcat/bin/catalina.sh:行464: /usr/local/tomcat/logs/catalina.out: 沒有那個文件或目錄
報錯沒有logs目錄,則創建一個就好。
[root@lnmp bin]# mkdir /usr/local/tomcat/logs
[root@lnmp bin]# /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@lnmp bin]# /usr/local/tomcat/bin/shutdown.sh
Tomcat不支持restart,修改配置文件前要關閉,修改完後再開就好。
3、查看服務是否啓動成功以及調用的端口。
[root@lnmp src]# ps aux |grep tomcat
root 3144 45.4 8.0 2296132 81524 pts/0 Sl 14:25 0:05 /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 -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 3188 0.0 0.0 112680 976 pts/0 R+ 14:25 0:00 grep --color=auto tomcat
[root@lnmp src]# netstat -lntp |grep java
tcp6 0 0 :::8080 :::* LISTEN 3144/java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 3144/java
tcp6 0 0 :::8009 :::* LISTEN 3144/java
這裏須要記住的是三個端口號,8080爲提供web服務的端口,8005爲管理端口,8009端口位第三方服務調用的端口,好比httpd和Tomcat結合時會用到。
4、在瀏覽器上測試。
爲了方便起見,咱們關閉防火牆。
[root@lnmp src]# systemctl stop firewalld
4、配置Tomcat監聽80端口
默認直接輸入ip訪問的是80端口,Tomcat訪問的是8080端口,若是想修改成80,則須要修改server.xml文件。
[root@lnmp src]# vim /usr/local/tomcat/conf/server.xml
找到<Connector port="8080" protocol="HTTP/1.1"
修改成<Connector port="80" protocol="HTTP/1.1"
修改完後重啓服務:(咱們發現監聽80端口的是nginx)
[root@lnmp src]# /usr/local/tomcat/bin/shutdown.sh
[root@lnmp src]# /usr/local/tomcat/bin/startup.sh
[root@lnmp src]# netstat -lntp |grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 1232/nginx: master tcp6 0 0 :::8009 :::* LISTEN 3401/java
遇到這種狀況,咱們把nginx關閉,把tomcat從新啓動,而後在觀察
[root@lnmp src]# systemctl stop nginx
[root@lnmp src]# /usr/local/tomcat/bin/shutdown.sh
[root@lnmp src]# /usr/local/tomcat/bin/startup.sh
[root@lnmp src]# netstat -lntp |grep 80
tcp6 0 0 :::80 :::* LISTEN 3401/java tcp6 0 0 :::8009 :::* LISTEN 3401/java 此時咱們又發現,沒有8005端口,由於重新啓動後,8005做爲管理端口會啓動的較慢。
在8005沒有啓動時咱們用瀏覽器直接去訪問時很慢的,由於他要等8005啓動後。