一、Tomcat介紹
- 目前有很多網站是用Java編寫的,是以解析Java程式就必須有相關的軟體來完成,Tomcat就是其中之一
- Tomcat是Apache軟體基金會,的Jakarta項目中的一個核心項目,由apache、sun和其他一些公司及個人共同開發而成,Tomcat技術先進,性能穩定而且免費,因而深受Java愛好者的喜歡,并得到部分開發商的認可,成為目前比較流行的web因公伺服器。
- Java程式寫的網站用Tomcat+jdk來運作的。
- tomcat是一個中間件,真正起作用的,解析java腳本是jdk。
- jdk(java development kit)是整個Java的核心,它包含了java運作環境的一對java相關的工具以及java基礎庫。
- 最主流的jdk為sun公司釋出的jdk,初次之外,其實IBM公司也有釋出JDK,Centos上也可以用yum安裝openjdk。
- Tomcat是一個輕量級應用伺服器,在中小型系統和并發使用者不是很多的場合下普遍被使用,是開發和調試java程式的首選,對于初學者來說,在一台機器上配置好Apache伺服器之後,可利用它相應HTML頁面的通路請求。
- 實際上,Tomcat部分是Apache伺服器的拓展,但它是獨立運作的,是以當你運作Tomcat時,它是作為一個獨立的程序運作的。
- 二、安裝JDK
- jdk版本1.6,1.7,1.8
- 一、下載下傳jdk:
- 官網下載下傳位址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- 不同的作業系統版本使用不同的jdk版本
- 我使用的是
Tomcat(介紹,JDK安裝,Tomcat安裝,配置Tomcat監聽80端口) - 二、解壓jdk:
- 下載下傳好後,我們可以使用xftp把jdk放到/usr/local/src下
- 解壓jdk壓縮包:
- [root@lnmp ~]# tar zxvf /usr/local/src/jdk-8u151-linux-x64.tar.gz
- 三、設定環境變量:
- [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,顯示結果就正常了
三、安裝Tomcat
一、安裝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
二、啟動Tomcat
因為是二進制包,是以免去了編譯的過程,啟動Tomcat,指令如下:
[root@lnmp bin]# /usr/local/tomcat/bin/startup.sh
在這裡,我遇到了2個錯誤和大家分享一下。
第一個錯誤:
-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/
第二個錯誤:
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
Tomcat started.
再次啟動時,提示啟動成功。
關閉服務用的指令是:
[root@lnmp bin]# /usr/local/tomcat/bin/shutdown.sh
Tomcat不支援restart,修改配置檔案前要關閉,修改完後再開就好。
三、檢視服務是否啟動成功以及調用的端口。
[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結合時會用到。
四、在浏覽器上測試。
為了友善起見,我們關閉防火牆。
[root@lnmp src]# systemctl stop firewalld
四、配置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