閱讀幫助
關(guān)于命令提示符:
#表示是用 root 用戶執(zhí)行的命令
ex:# useradd cas
$表示是用普通用戶執(zhí)行的命令
ex:$ vi .bash_profile關(guān)于路徑,所有命令都是在用戶的家目錄下執(zhí)行
$HOME 是linux系統(tǒng)內(nèi)置環(huán)境變量,表示當前用戶的家目錄路徑。
環(huán)境說明
系統(tǒng)OS:CentOS7
IP: 192.168.1.101
配置過程
創(chuàng)建普通用戶 web
首先創(chuàng)建用戶組 app,再創(chuàng)建用戶 web,加入到 app 組
# groupadd app
# useradd -g app cas
# passwd cas切換到用戶 cas
# su - cas去oracle和apache官網(wǎng)下載需要的jdk和tomcat的tar.gz包,此處以截止至2018年3月31日最新版本的jdk和tomcat為例
$ wget http://download.oracle.com/otn-pub/java/jdk/9.0.4+11/c2514751926b4512b076cc82f959763f/jdk-9.0.4_linux-x64_bin.tar.gz?AuthParam=1522426550_309d343cd864a9f180653b294dc578c6
$ wget http://mirrors.shu.edu.cn/apache/tomcat/tomcat-9/v9.0.6/bin/apache-tomcat-9.0.6.tar.gz
- tips: 如果沒找到wget命令,先用 root 用戶運行 yum install wget -y 命令進行安裝
解壓tar.gz包
$ tar -zxvf jdk-9.0.4_linux-x64_bin.tar.gz
$ tar -zxvf apache-tomcat-9.0.6.tar.gz為了讓路徑看起來清潔一點,我們把tar.gz包刪除,將解壓的jdk和tomcat目錄重命名一下
$ rm *.tar.gz
$ mv jdk-9.0.4 java
$ mv apache-tomcat-9.0.6 tomcat配置java環(huán)境變量
$ vi .bash_profile
export JAVA_HOME=$HOME/java
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
刷新配置,使其生效
$ source .bash_profile
驗證一下java是否配置正確
$ java -version
tips: 到這里就已經(jīng)可以通過 sh $HOME/tomcat/bin/startup.sh 正常運行tomcat服務了,但使用起來不是很方便,接下來我們再對tomcat的配置做一些修改。
- 修改tomcat的配置,主要是一些易用性的配置
a) 修改 $HOME/tomcat/bin/catalina.sh ,在文件的 PRGDIR=`dirname "$PRG"` 這行下面添加如下代碼
$ vi tomcat/bin/catalina.sh
if [ -z "$CATALINA_PID" ]; then
CATALINA_PID=$PRGDIR/CATALINA_PID
fi
b) 修改 $HOME/tomcat/bin/shutdown.sh 最后一行,添加-force參數(shù)
$ vi tomcat/bin/shutdown.sh
exec "$PRGDIR"/"$EXECUTABLE" stop -force "$@"
- tips:以上兩步操作主要是解決 shutdown.sh 命令有時候無法正常停止tomcat,而不得不以 kill -9 pid 的方式來停止的問題。
c) 修改 $HOME/tomcat/conf/tomcat-users.xml,添加管理用戶manager
$ vi tomcat/conf/tomcat-users.xml
<role rolename="admin-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<user username="manager" password="manager123" roles="manager-gui"/>
<user username="admin" password="admin123" roles="admin-gui,manager-script,manager-jmx"/>
d) 修改 $HOME/tomcat/webapps/manager/META-INF/context.xml,注釋掉<Valve>標簽,否則只有l(wèi)ocalhost才能訪問manager頁面。
$ vi tomcat/webapps/manager/META-INF/context.xml
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->
tips: tomcat8.x以下的版本是默認注釋的,無須修改
e) 修改 $HOME/tomcat/webapps/manager/WEB-INF/web.xml,修改文件上傳大小限制,默認最大只能上傳50MB大小的文件。
$ vi tomcat/webapps/manager/WEB-INF/web.xml
<multipart-config>
<!-- 500MB max -->
<max-file-size>524288000</max-file-size>
<max-request-size>524288000</max-request-size>
<file-size-threshold>0</file-size-threshold>
</multipart-config>
這樣修改之后,我們就可以通過 http://192.168.1.101:8080/manager/html 來上傳我們的war包進行熱部署了。如果無法訪問,可能是被防火墻墻了。
要么修改防火墻,允許8080端口通過
# firewall-cmd --add-port=80/tcp --permanent
或者直接關(guān)閉防火墻
# systemctl stop firewalld
tips: 如果不需要開啟manager/html訪問,c、d、e這3步操作可以省略
f) 創(chuàng)建 .local/bin目錄
$ mkdir -p .local/bin
tips: 該目錄是當前用戶$PATH中的路徑,放在這個目錄下的命令腳本就可以在該用戶的任何目錄下面直接執(zhí)行了,我們接下來要把啟動,停止和重啟腳本放在該目錄下。
g) 創(chuàng)建啟動腳本 start
$ vi .local/bin/start
#!/bin/bash
webapps=$HOME/tomcat/webapps
files=`ls $webapps`
for file in $files
do
# 如果是war文件,且存在文件的同名目錄,則解壓覆蓋,避免因為存在同名目錄的war包不會自動解壓更新的問題。
if [[ "war" = ${file##*.} && -d $webapps/${file%.*} ]]
then
echo "正在解壓 $webapps/$file 文件..."
cd $webapps/${file%.*}
$HOME/java/bin/jar -xf $webapps/$file
echo "$webapps/$file 文件解壓完成。"
fi
done
echo "正在啟動tomcat..."
sh $HOME/tomcat/bin/startup.sh
echo "tomcat已經(jīng)啟動完成"
h) 創(chuàng)建停止腳本 stop
$ vi .local/bin/stop
#!/bin/bash
catalina_pid=$HOME/tomcat/bin/CATALINA_PID
# 如果CATALINA_PID文件存在,則表示當前tomcat是運行狀態(tài),可以停止
if [ -f $catalina_pid ]
then
echo "正在停止tomcat..."
sh $HOME/tomcat/bin/shutdown.sh
echo "tomcat已停止"
fi
i) 創(chuàng)建重啟腳本 restart
$ vi .local/bin/restart
#!/bin/bash
source $HOME/.local/bin/stop
source $HOME/.local/bin/start
j) 給這三個腳本文件賦予可執(zhí)行權(quán)限
$ chmod 755 .local/bin/*
tips: 此時,我們就可以隨處執(zhí)行start,stop或這restart命令來管理tomcat服務了。但有時候我們生產(chǎn)環(huán)境萬一遭遇斷電導致服務器重啟,此時我們還得需要手動去啟動tomcat服務,接下來我們再看看如何讓tomcat開機自動啟動。
- 配置開機啟動tomcat服務
a) 修改 $HOME/tomcat/bin/setclasspath.sh,在里面添加 JAVA_HOME 和 JRE_HOME 兩個變量
$ vi tomcat/bin/setclasspath.sh
export JAVA_HOME=$HOME/java
export JRE_HOME=$JAVA_HOME/jre

tips: 如果沒有這一步,啟動服務的時候會報下面這樣的錯誤
3月 26 14:17:36 server-101.localdomain startup.sh[14810]: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
3月 26 14:17:36 server-101.localdomain startup.sh[14810]: At least one of these environment variable is needed to run this program
b) 使用 root 用戶創(chuàng)建 /etc/systemd/system/cas.service 文件,文件名稱根據(jù)你自己需要隨意命名,格式為 servicename.service。
# vi /etc/systemd/system/cas.service
[Unit]
Description=cas service ##服務名稱為cas
After=network.target ##網(wǎng)絡(luò)服務啟動完成后啟動該服務
[Service]
Type=forking ##后臺運行
ExecStart=/home/cas/.local/bin/start ## 啟動腳本
ExecStop=/home/cas/.local/bin/stop ##停止腳本
ExecReload=/home/cas/.local/bin/restart ##重啟腳本
User=cas ##啟動用戶
Group=app ##用戶組
[Install]
WantedBy=multi-user.target
c) 重載服務配置
# systemctl daemon-reload
d) 激活cas.service服務開機啟動
# systemctl enable cas
至此大功告成,現(xiàn)在啟動tomcat服務有兩種方法
- 使用 root 用戶執(zhí)行
systemctl start|stop|restart cas - 使用普通用戶 cas 執(zhí)行
start|stop|restart
tips: 以上配置都是通用的,我們可以將這個配置打包備用
$ tar -czvf tomcat.tar.gz tomcat/ .local/ java/ .bash_profile
如果你有多個應用服務需要部署在該服務器上,我們可以再新建一個用戶,直接將修改過的tomcat.tar.gz復制到新用戶的家目錄下解壓,修改一下端口即可使用。