1 前言
一直以來都覺得Tomcat以root身份運作非常不安全,故研究Tomcat如何以普通使用者身份運作,以下是參考網絡上的一些配置實作Tomcat以daemon方式運作于CentOS 6&7系統下面。
2 實踐部分
2.1 環境配置
2.1.1 系統環境
ipaddress=10.168.0.157
OS=CentOS 6&7
2.1.2 配置編譯環境
1
<code>yum -y </code><code>install</code> <code>gcc gcc-c++ </code><code>make</code> <code>expat-devel</code>
2.1.3 下載下傳JDK
1)下載下傳頁面:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
2)下載下傳選擇
請選擇“jdk-8u111-linux-x64.tar.gz”下載下傳,指令行如下:
<code>wget http:</code><code>//download</code><code>.oracle.com</code><code>/otn-pub/java/jdk/8u111-b14/jdk-8u111-linux-x64</code><code>.</code><code>tar</code><code>.gz?AuthParam=1479977626_06aed8a715c8fbbc10f72c89ee38910b</code>
2.1.4 下載下傳Tomcat
1)下載下傳頁面
http://tomcat.apache.org/
請選擇“Tomcat 9.0.0.M13”下載下傳(注意選擇“Binary Distributions”)版本,指令行如下:
<code>wget http:</code><code>//apache</code><code>.fayea.com</code><code>/tomcat/tomcat-9/v9</code><code>.0.0.M13</code><code>/bin/apache-tomcat-9</code><code>.0.0.M13.</code><code>tar</code><code>.gz</code>
2.1.5 配置防火牆
In CentOS 6
<code>vim </code><code>/etc/sysconfig/iptables</code>
增加如下行:
<code>-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT</code>
重新開機防火牆使服務生效
<code>/etc/init</code><code>.d</code><code>/iptables</code> <code>restart</code>
In CentOS 7
2
3
<code>firewall-cmd --permanent --add-port=8080</code><code>/tcp</code>
<code>firewall-cmd --reload</code>
<code>firewall-cmd --list-all</code>
2.2 配置JDK
2.2.1 建立java目錄
<code>mkdir</code> <code>/usr/java</code>
2.2.2 解壓
<code>tar</code> <code>xf jdk-8u111-linux-x64.</code><code>tar</code><code>.gz</code>
<code>mv</code> <code>jdk1.8.0_111 </code><code>/usr/java/</code>
2.2.3 配置環境變量
<code>vim </code><code>/etc/profile</code>
末尾加入如下内容:
4
<code>export</code> <code>JAVA_HOME=</code><code>/usr/java/jdk1</code><code>.8.0_111</code>
<code>export</code> <code>JRE_HOME=${JAVA_HOME}</code><code>/jre</code>
<code>export</code> <code>CLASSPATH=.:${JAVA_HOME}</code><code>/lib</code><code>:${JRE_HOME}</code><code>/lib</code>
<code>export</code> <code>PATH=${JAVA_HOME}</code><code>/bin</code><code>:$PATH</code>
注:以上配置隻是為了下面的daemon環境的編譯,編譯完可以注釋
2.2.4 配置生效
<code>source</code> <code>/etc/profile</code>
2.2.5 環境變量測試
<code>java -version</code>
2.3 配置Tomcat
2.3.1 建立tomcat目錄
<code>mkdir</code> <code>/usr/tomcat</code>
2.3.2 解壓
<code>tar</code> <code>-xf apache-tomcat-9.0.0.M13.</code><code>tar</code><code>.gz</code>
<code>mv</code> <code>apache-tomcat-9.0.0.M13 </code><code>/usr/tomcat/</code>
2.3.3 配置環境變量
<code>vim </code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/setenv</code><code>.sh</code>
輸入如下配置
5
<code>JAVA_HOME=</code><code>/usr/java/jdk1</code><code>.8.0_111</code>
<code>JRE_HOME=${JAVA_HOME}</code><code>/jre</code>
<code>CATALINA_HOME=</code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code>
<code>CATALINA_BASE=${CATALINA_HOME}</code>
<code>JAVA_OPTS=</code><code>'-server -Xms2048m -Xmx4096m -Xss512k'</code>
環境變量配置請參考以下指令輸出的内容:
<code>grep</code> <code>'^#'</code> <code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/catalina</code><code>.sh</code>
2.3.4 解壓daemon工具包
<code>tar</code> <code>-xf </code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/commons-daemon-native</code><code>.</code><code>tar</code><code>.gz</code>
2.3.5 編譯daemon工具包
<code>cd</code> <code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/commons-daemon-1</code><code>.0.15-native-src</code><code>/unix/</code>
<code>.</code><code>/configure</code>
<code>make</code>
2.3.6 配置daemon運作環境
<code>cp</code> <code>jsvc </code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/</code>
<code>useradd</code> <code>-M -d </code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13/ -s </code><code>/sbin/nologin</code> <code>tomcat</code>
<code>chown</code> <code>-R tomcat: </code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code>
2.3.7 手動測試服務啟停
<code>sudo</code> <code>-u tomcat </code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/daemon</code><code>.sh start</code>
<code>sudo</code> <code>-u tomcat </code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/daemon</code><code>.sh stop</code>
确認服務正常啟動與關閉:
<code>netstat</code> <code>-antp</code>
浏覽器測試确認:
<a href="http://10.168.0.157:8080/" target="_blank">http://10.168.0.157:8080/</a>
<a href="http://s4.51cto.com/wyfs02/M02/8A/C5/wKioL1g74fjwykvxAAJK_eYL5d8442.png" target="_blank"></a>
2.3.8 啟動服務與配置服務開機啟動
<code>ln</code> <code>-s </code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/daemon</code><code>.sh </code><code>/etc/init</code><code>.d</code><code>/tomcat9</code>
<code>/etc/init</code><code>.d</code><code>/tomcat9</code> <code>start</code>
<code>vim </code><code>/etc/init</code><code>.d</code><code>/tomcat9</code>
第二行加入如下内容:
<code># chkconfig: 2345 55 25</code>
配置服務自啟動:
<code>chkconfig tomcat9 on</code>
<code>vim </code><code>/lib/systemd/system/tomcat9</code><code>.service</code>
輸入如下内容:
6
7
8
9
10
11
12
13
<code>[Unit]</code>
<code>Description=seafile</code>
<code>After=network.target</code>
<code>[Service]</code>
<code>Type=forking</code>
<code>ExecStart=</code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/daemon</code><code>.sh start</code>
<code>ExecReload=</code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/daemon</code><code>.sh restart</code>
<code>ExecStop=</code><code>/usr/tomcat/apache-tomcat-9</code><code>.0.0.M13</code><code>/bin/daemon</code><code>.sh stop</code>
<code>PrivateTmp=</code><code>true</code>
<code>[Install]</code>
<code>WantedBy=multi-user.target</code>
測試服務運作
<code>systemctl start tomcat9.service</code>
<code>systemctl restart tomcat9.service</code>
<code>systemctl stop tomcat9.service</code>
配置服務自啟動
<code>systemctl </code><code>enable</code> <code>tomcat9.service</code>
===============================================================
本文轉自 tanzhenchao 51CTO部落格,原文連結:http://blog.51cto.com/cmdschool/1877213,如需轉載請自行聯系原作者