1. 程式人生 > >CentOS中安裝Tomcat9

CentOS中安裝Tomcat9

安裝Tomcat之前,需要先安裝JDK,安裝JDK請參考:CentOS中安裝JDK環境

1.下載安裝包

# cd /usr/local/
# mkdir tomcat/
# cd tomcat/
# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz

以上操作就將tomcat9安裝包檔案下載到/usr/local/tomcat目錄下了

2.安裝tomcat9
# cd /usr/local/tomcat
# tar -zxvf apache-tomcat-9.0.12.tar.gz
安裝包會被解壓到/usr/local/tomcat/apache-tomcat-9.0.12,將目錄重新命名為tomcat9
# mv /usr/local/tomcat/apache-tomcat-9.0.12 /usr/local/tomcat/tomcat9


 

3.配置自啟動
切換至Tomcat的bin目錄執行vi setenv.sh,並按i進入編輯模式,拷貝以下程式碼貼上:
#add tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
之後按esc鍵,再按shift加":"(左下角出現會出現":")切換到命令模式,然後輸入wq儲存退出,最後執行 chmod x setenv.sh,確保檔案setenv.sh可執行。


4.配置service,開機啟動
cd /usr/lib/systemd/system 切換至目錄
# vi tomcat.service (也可以直接vi /usr/lib/systemd/system/tomcat.service
拷貝以下程式碼貼上(注意將第6和7行的Tomcat路徑/usr/local/apache-tomcat-9.0.0.M18 換成你自己的Tomcat的絕對路徑)

[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat9/tomcat.pid
ExecStart=/usr/local/tomcat/tomcat9/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

之後按esc鍵,再按shift加":"(左下角出現會出現":")切換到命令模式,然後輸入wq儲存退出。執行以下指令將tomcat.service新增開機至開機啟動
//配置開機啟動 
systemctl enable tomcat


//啟動tomcat
systemctl start tomcat
//停止tomcat
systemctl stop tomcat
//重啟tomcat
systemctl restart tomcat
當然啟動和結束tomcat也可以到tomcat的安裝目錄的bin目錄下執行shutdown.sh  startup.sh來完成。
配置完成,建議重啟伺服器,即輸入命令 reboot(或者sudo reboot)即可 。

5.驗證安裝是否成功
在伺服器上輸入 http://localhost:8080/
如果看到小貓咪,就表示安裝成功了,否則請檢查以上所有步驟是否全都執行正確了。

6.配置tomcat被外部訪問
在linux上開啟的tomcat使用瀏覽器訪問不了。主要原因在於防火牆的存在,導致的埠無法訪問。
CentOS7使用firewall而不是iptables。所以解決這類問題可以通過新增firewall的埠,使其對我們需要用的埠開放。
(1)使用命令firewall-cmd --state 檢視防火牆狀態。得到結果是running或者not running
(2)在running 狀態下,向firewall 新增需要開放的埠,命令為:firewall-cmd --permanent --zone=public --add-port=8080/tcp //永久的新增該埠。去掉--permanent則表示臨時。
(3)firewall-cmd --reload //載入配置,使得修改有效。
(4)使用命令firewall-cmd --permanent --zone=public --list-ports //檢視開啟的埠,出現8080/tcp這開啟正確

7.外部訪問測試
再次使用外部瀏覽器訪問,這出現tomcat的歡迎介面。
補充(CentOS7以下有專門的防火牆操作命令):
開啟防火牆:systemctl start firewalld.service
關閉防火牆:systemctl stop firewalld.service
開機自動啟動:systemctl enable firewalld.service
關閉開機啟動:systemctl disable firewalld.service
檢視防火牆狀態:systemctl status firewalld