天天看點

Tomcat以Daemon的方式啟動(CentOS6&7)

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,如需轉載請自行聯系原作者