目錄
前言
作為一個Java後端開發者,tomcat想必是最最最熟悉的一個開發元件了,tomcat環境的搭建部署都十分簡單。安裝部署只需要兩步,第一步下載,第二步解壓,這樣一個基礎的tomcat環境就搭建好啦。通常直接執行tomcat目錄下的bin/startup.sh指令碼進行啟動,執行bin/shutdown.sh指令碼進行關閉。剛工作那段時間一直都是這麼操作的,玩的不亦樂乎,工作幾年後忽然發現還能以daemon守護程式的方式進行執行,一下子被這波操作給安利了,簡直666,今天就來說說如何操作。
版本
系統:CentOS-6.4 (系統有點老,手頭就這一個映象)
tomcat:8.5.60
關注本文末尾微信公眾號,回覆“666”獲取常用開發工具包,內含常用開發元件,節省翻牆下載時間。
安裝部署
1.下載
從tomcat庫中選擇一個最新版本進行下載
https://mirrors.cnnic.cn/apache/tomcat/
這邊選擇tomcat8 最新的版本,複製檔案地址
https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.60/bin/apache-tomcat-8.5.60.tar.gz
cd /usr/local/work/
wget --no-check-certificate https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.60/bin/apache-tomcat-8.5.60.tar.gz
tar -zxvf apache-tomcat-8.5.60.tar.gz
2.建立使用者
# 建立使用者組
groupadd tomcat
# 建立使用者(無登入許可權)並加入tomcat組
useradd -g tomcat -s /usr/sbin/nologin tomcat
3.安裝jsvc
# 進入tomcat bin目錄
cd tomcat-8.5.60/bin/
# 解壓 daemon
tar -zxvf commons-daemon-native.tar.gz
cd commons-daemon-1.2.3-native-src/unix/
# 調整為jdk安裝目錄
./configure --with-java=/usr/local/work/jdk1.8.0_172
make
cp jsvc /usr/local/work/tomcat-8.5.60/bin
cd /usr/local/work/tomcat-8.5.60/bin/
4.編輯daemon.sh
在daemon.sh中開頭第二行新增如下資訊
# chkconfig: 2345 20 80
# description: Startup script for the Tomcat 8.5.60 Server
在daemon.sh中該行test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat上放新增jdk及tomcat資訊
這邊TOMCAT_USER=tomcat需和上面建立的使用者名稱一致
# jdk安裝目錄
JAVA_HOME=/usr/local/work/jdk1.8.0_172
# tomcat目錄
CATALINA_HOME=/usr/local/work/tomcat-8.5.60
test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
4.賦權並新增服務
# 更改檔案所有者
chown -R tomcat:tomcat /usr/local/work/tomcat-8.5.60
# 賦予使用者執行權
chmod a+x /usr/local/work/tomcat-8.5.60/bin/daemon.sh
# 複製至/etc/init.d/
cp daemon.sh /etc/init.d/tomcat8
# 新增服務
chkconfig --add tomcat8
# 檢視已有服務
chkconfig --list
# 啟動
service tomcat8 start
# 關閉
service tomcat8 stop
至此tomcat已以daemon方式執行了,重啟伺服器後tomcat服務也會自動啟動,nice。
5.日誌中文亂碼
在daemon方式執行後,在tomcat/logs目錄下會出現2個新檔案,如下
# 執行pid資訊
catalina-daemon.pid
# 日誌輸出資訊 原先日誌輸出檔案 catalina.out
catalina-daemon.out
讓我們檢視下日誌資訊
tail -f -n 500 /usr/local/work/tomcat-8.5.60/logs/catalina-daemon.out
原先都是正常的,現在怎麼亂碼了呢,操作如下即可
開啟/etc/init.d/tomcat8,在$LOGGING_MANAGER行調整如下
test ".$LOGGING_MANAGER" = . && LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
追加編碼配置“-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8”
按如下配置
test ".$LOGGING_MANAGER" = . && LOGGING_MANAGER="-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"
調整完後趕緊試一把,OK,搞定。