環(huán)境準備
安裝java環(huán)境
[root@snails ~]# yum -y install java
[root@snails local]# java -version
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
對于需要jdk tool進行操作的業(yè)務(wù)場景盛撑,可以采用從官方下載jdk的壓縮包仑扑。
[root@snails ~]# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz" -O jdk-8u60-linux-x64.tar.gz
下載tomcat并解壓
wget http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.0.36/bin/apache-tomcat-8.0.36.tar.gz -P /usr/local
[root@snails local]# cd /usr/local/
[root@snails local]# tar -zxvf apache-tomcat-8.0.36.tar.gz > /dev/nul
[root@snails local]# ln -s /usr/local/apache-tomcat-8.0.36 /usr/local/tomcat
[root@snails local]# rm -rvf apache-tomcat-8.0.36.tar.gz
已刪除"apache-tomcat-8.0.36.tar.gz"
設(shè)置環(huán)境變量
[root@snails local]# vi /etc/profile
export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk
export CLASS_PATH=.:$JAVA_HOME/lib
export CATALINA_HOME=/usr/local/tomcat
export CATALINA_BASE=/usr/local/tomcat
export PATH=$PATH:$JAVA_HOME/bin:$CATLINA_HOME:/bin
[root@snails ~]# source /etc/profile
centos7 使用 systemctl 替換了 service命令
[root@snails ~]# systemctl list-unit-files --type service #查看全部服務(wù)命令
[root@snails ~]# systemctl status name.service #查看服務(wù)命令
[root@snails ~]# systemctl start name.service #啟動服務(wù)
[root@snails ~]# systemctl stop name.service #停止服務(wù)
[root@snails ~]# systemctl restart name.service #重啟服務(wù)
[root@snails ~]# systemctl enable name.service #增加開機啟動
[root@snails ~]# systemctl disable name.service #刪除開機啟動
tips: 其中.service 可以省略。
tomcat增加啟動參數(shù)
tomcat 需要增加一個pid文件
在tomca/bin 目錄下面肴甸,增加 setenv.sh 配置诫给,catalina.sh啟動的時候會調(diào)用,同時配置java內(nèi)存參數(shù)穗熬。
[root@snails ~]# vi /usr/local/tomcat/bin/setenv.sh
#add tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
創(chuàng)建tomcat啟動用戶并授權(quán)
[root@snails ~]# getent group tomcat || groupadd -r tomcat
[root@snails ~]# getent passwd tomcat || useradd -r -d /opt -s /bin/nologin -g tomcat tomcat
[root@snails ~]# chown -R tomcat:tomcat /usr/local/apache-tomcat-8.0.36
增加systemd-tomcat.service
在/usr/lib/systemd/system目錄下增加systemd-tomcat.service镀迂,目錄必須是絕對目錄丁溅。
[root@snails ~]# cd /usr/lib/systemd/system
[root@snails ~]# cat >systemd-tomcat.service <<EOF
[Unit]
Description=Apache Tomcat 8
After=syslog.target network.target
[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
EOF
使用systemd-tomcat.service
[root@snails ~]# systemctl enable systemd-tomcat
[root@snails ~]# systemctl start systemd-tomcat
[root@snails ~]# ps aux |grep tomcat
tomcat 1304 34.8 2.8 3570504 102908 ? Sl 14:36 0:03 /usr/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -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@snails system]# curl -I localhost:8080
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=UTF-8
Transfer-Encoding: chunked
Date: Thu, 14 Jul 2016 06:39:13 GMT
因為配置pid,在啟動的時候會再tomcat根目錄生成tomcat.pid文件探遵,停止之后刪除窟赏。
同時tomcat在啟動時候妓柜,執(zhí)行start不會啟動兩個tomcat,保證始終只有一個tomcat服務(wù)在運行涯穷。