如何在eclipse升級tomcat 版本

Posted in :

因為已知的安全性漏洞已修補, 不得不升級 tomcat 版本。

下載 Tomcat

官方網站: https://tomcat.apache.org/

選擇 Binary Distributions 裡的 Core 分類裡的 .tar.gz 來下載

我的環境的 tomcat 目錄是在 /opt/tomcat/

先把 tar.gz 搬到 /opt/tomcat/, 使用下列指令解壓縮

tar zxvf apache-tomcat-9.0.86.tar.gz

上圖可以看的出來, 搬進去 /opt/tomcat 的帳號是 max, 解壓縮後目錄的擁有者的是 root

關於權限的設定, 下載並解壓縮好 tomcat 的 .tar.gz 之後, 由於是開發環境, 並不是實際營運的線上環境, 建議在解壓縮完後, 粗暴地修改整個目錄 chown 為 tomcat:tomcat, 修改檔案屬性 chmod 755.

sudo chown tomcat:tomcat -R apache-tomcat-9.0.86
sudo chmod 755 -R apache-tomcat-9.0.86

備份 Server 參數

升級前, 請先把 eclipse workspace 裡的 Server 目錄備份下來, 不然之前輸入進去的參數需要重新來過, 很花時間.

Eclipse 的設定

在 eclipse 裡, 點 Window -> Server

New Server, 在 Tomcat 分類展開, 選擇你的Tomcat 主版號, 我是用 Tomcat 9.0

接著點 “Configu runtime environments…, 可以在這裡新增下載到的版本, 順便把舊的版本也刪掉, 避免太多版本, 容易混亂.

以我的情境來說, 因為 [漏洞編號] CVE-2023-41080: FORM 認證功能中存在 URL 重新導向到不受信任網站的漏洞, 目標是, 是 tomcat 要從 9.0.82 升到 9.0.86,

下載的 9.0.88 刪除以下資料夾

rm -rf apache-tomcat-9.0.86/webapps/ROOT
rm -rf apache-tomcat-9.0.86/webapps/docs
rm -rf apache-tomcat-9.0.86/webapps/examples
rm -rf apache-tomcat-9.0.86/webapps/host-manager

執行畫面:

搬動使用到的第三方 .jar 元件:

cp apache-tomcat-9.0.82/lib/commons-io-2.11.0.jar apache-tomcat-9.0.86/lib/
cp apache-tomcat-9.0.82/lib/json-20230227.jar apache-tomcat-9.0.86/lib/
cp apache-tomcat-9.0.82/lib/mysql-connector-j-8.0.32.jar apache-tomcat-9.0.86/lib/

接著是把用到的tomcat 以外的第三方元件, 重新修改在 eclipse project 裡的properties 裡的

說明:

  • 先點 Classpath 圖示後, 按下右邊的Add External JARs… 加入的 .jar 檔.
  • 如果是先 Remove, 再 Add External JARs…, 需要在 Order and Export 裡設勾 .jar 一起 Export.
  • 如果無法瀏覽 /opt/tomcat/apache-tomat-9.0.86/ 目錄, 請把目錄權限設為 755 問題就解決了.

在 Window -> Server 裡, 並把目前的專案, 加入新 Server 裡, 成功之後, 再去刪掉舊版本的Server, 這樣子設定值比較好複製。

在增加新的 Server 時, 記得要把 resource 也一起加進去, 沒加的話, 新的 Server 會跑不動。

新的 Tomcat 可以執行後, 舊的有問題的版本, 就可以直接刪除了。


相關文章

How To Create A Self Signed SSL Certificate For Use With Tomcat?
https://stackoverflow.max-everyday.com/2023/04/how-to-create-a-self-signed-ssl-certificate-for-use-with-tomcat/

How To Store String Values In Tomcat Context.Xml
https://stackoverflow.max-everyday.com/2023/03/how-to-store-string-values-in-tomcat-context-xml/

How To Start A New Thread When Tomcat Start
https://stackoverflow.max-everyday.com/2023/06/how-to-start-a-new-thread-when-tomcat-start/

How to upgrade Tomcat version manually on existing on-premise Foundry instance in case of security vulnerabilities
https://support.hcltechsw.com/csm?id=kb_article&sysparm_article=KB0099544

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *