1 前言html
一直以來都以爲Tomcat以root身份運行很是不安全,故研究Tomcat如何以普通用戶身份運行,如下是參考網絡上的一些配置實現Tomcat以daemon方式運行於CentOS 6&7系統下面。java
2 實踐部分linux
2.1 環境配置c++
2.1.1 系統環境apache
ipaddress=10.168.0.157vim
OS=CentOS 6&7centos
2.1.2 配置編譯環境瀏覽器
yum -y install gcc gcc-c++ make expat-devel
2.1.3 下載JDK
tomcat
1)下載頁面:安全
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2)下載選擇
請選擇「jdk-8u111-linux-x64.tar.gz」下載,命令行以下:
wget http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64.tar.gz?AuthParam=1479977626_06aed8a715c8fbbc10f72c89ee38910b
2.1.4 下載Tomcat
1)下載頁面
http://tomcat.apache.org/
2)下載選擇
請選擇「Tomcat 9.0.0.M13」下載(注意選擇「Binary Distributions」)版本,命令行以下:
wget http://apache.fayea.com/tomcat/tomcat-9/v9.0.0.M13/bin/apache-tomcat-9.0.0.M13.tar.gz
2.1.5 配置防火牆
In CentOS 6
vim /etc/sysconfig/iptables
增長以下行:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
重啓防火牆使服務生效
/etc/init.d/iptables restart
In CentOS 7
firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload firewall-cmd --list-all
2.2 配置JDK
2.2.1 建立java目錄
mkdir /usr/java
2.2.2 解壓
tar xf jdk-8u111-linux-x64.tar.gz mv jdk1.8.0_111 /usr/java/
2.2.3 配置環境變量
vim /etc/profile
末尾加入以下內容:
export JAVA_HOME=/usr/java/jdk1.8.0_111 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
注:以上配置只是爲了下面的daemon環境的編譯,編譯完能夠註釋
2.2.4 配置生效
source /etc/profile
2.2.5 環境變量測試
java -version
2.3 配置Tomcat
2.3.1 建立tomcat目錄
mkdir /usr/tomcat
2.3.2 解壓
tar -xf apache-tomcat-9.0.0.M13.tar.gz mv apache-tomcat-9.0.0.M13 /usr/tomcat/
2.3.3 配置環境變量
vim /usr/tomcat/apache-tomcat-9.0.0.M13/bin/setenv.sh
輸入以下配置
JAVA_HOME=/usr/java/jdk1.8.0_111 JRE_HOME=${JAVA_HOME}/jre CATALINA_HOME=/usr/tomcat/apache-tomcat-9.0.0.M13 CATALINA_BASE=${CATALINA_HOME} JAVA_OPTS='-server -Xms2048m -Xmx4096m -Xss512k'
環境變量配置請參考如下命令輸出的內容:
grep '^#' /usr/tomcat/apache-tomcat-9.0.0.M13/bin/catalina.sh
2.3.4 解壓daemon工具包
tar -xf /usr/tomcat/apache-tomcat-9.0.0.M13/bin/commons-daemon-native.tar.gz
2.3.5 編譯daemon工具包
cd /usr/tomcat/apache-tomcat-9.0.0.M13/bin/commons-daemon-1.0.15-native-src/unix/ ./configure make
2.3.6 配置daemon運行環境
cp jsvc /usr/tomcat/apache-tomcat-9.0.0.M13/bin/ useradd -M -d /usr/tomcat/apache-tomcat-9.0.0.M13/ -s /sbin/nologin tomcat chown -R tomcat: /usr/tomcat/apache-tomcat-9.0.0.M13
2.3.7 手動測試服務啓停
sudo -u tomcat /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh start sudo -u tomcat /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh stop
確認服務正常啓動與關閉:
netstat -antp
瀏覽器測試確認:
2.3.8 啓動服務與配置服務開機啓動
In CentOS 6
ln -s /usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh /etc/init.d/tomcat9 /etc/init.d/tomcat9 start vim /etc/init.d/tomcat9
第二行加入以下內容:
# chkconfig: 2345 55 25
配置服務自啓動:
chkconfig tomcat9 on
In CentOS 7
vim /lib/systemd/system/tomcat9.service
輸入以下內容:
[Unit] Description=seafile After=network.target [Service] Type=forking ExecStart=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh start ExecReload=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh restart ExecStop=/usr/tomcat/apache-tomcat-9.0.0.M13/bin/daemon.sh stop PrivateTmp=true [Install] WantedBy=multi-user.target
測試服務運行
systemctl start tomcat9.service systemctl restart tomcat9.service systemctl stop tomcat9.service
配置服務自啓動
systemctl enable tomcat9.service
===============================================================
參閱文檔:
http://blog.csdn.net/bebabyron/article/details/11852317
http://www.liaoshixiong.cn/java/centos7-tomcat-daemon.html