CentOS 7でTomcatをサービスにインストールします。

3305 ワード

環境:
CentOS Linux release 7.3.1611 (Core)
3.10.0-514.16.1.el7.x86_64
1.Java環境のインストール
JreにはServerJreとJreの違いがあります。両者の具体的な違いはServerJre起動時にデフォルトJvmがServerモードであり、いくつかの監視ツールが含まれています。具体的な違いはOracleのサイトにあります。現在一般的に存在している問題の一つは、ほとんどのJAVAプログラムがJAVA 7に基づいて開発されたということです。しかし、Oracleは早くからJava 8に更新されています。そして、ウェブサイトでデフォルトで提供されているのは、Jre 8のダウンロードです。でも、どのバージョンのJREをダウンロードしてもここで見つけられます。ServerJreをダウンロードする前に、ダウンロードリンクをアクティブにするために、Accent License Agreementを選択する必要があります。ここで選択したのはserver-jre-7u80-linux-x64.tar.gzです。ダウンロードが完了し、 /usr/local/に解凍しました。ここで注意したいのは、解凍後のserver-jre-7u80-linux-x64.tar.gzの名前はjdk1.7.0_79です。しかし、これは本物のJDKファイルとは違います。解凍が完了したら、/etc/profileを編集して環境変数を設定し、検証します。
cat >>/etc/profile << "EOF"
#set java env
JAVA_HOME=/usr/local/jdk1.7.0_80
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
EOF

source /etc/profile

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
これで、java環境の設置が完了しました。
2.tomcatの設置apache-tomcat-7.0.72.tar.gzを直接ダウンロードして解凍し、解凍したディレクトリをtomcat7に名前を変更し、/optに移動して実行環境ファイルを作成する。
vim /opt/tomcat7/bin/setenv.sh
内容は/etc/profileテールと一致している:
JAVA_HOME=/usr/local/jdk1.7.0_80
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
これでtomcatのインストールと設定が完了しました。
3.tomcatを作成してユーザを実行し、対応ファイルに権限を与えます。
groupadd tomcat
useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat #     tomcat,        ,             tomcat.
cd /opt/tomcat7
chmod -R 754 bin/
chgrp -R tomcat /opt/tomcat
chmod -R g+r conf
chmod g+x conf
chown -R tomcat webapps/ work/ temp/ logs/
これにより、関連賦権は完了する。
4.サービスファイルの編集
vim /etc/systemd/system/tomcat.service
設定は以下の通りですが、メモリ容量に応じて自分でCATALINA_OPTSの値を調整する必要があります。一般的には-Xmsと-Xmxオプションを同じに設定します。-Xmnは1/4の-Xmx値です。ヒープの最大値は利用可能メモリの最大値の80%に設定することを推奨します。
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target

[Service]
Type=forking


Environment=CATALINA_PID=/opt/tomcat7/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat7
Environment=CATALINA_BASE=/opt/tomcat7
Environment='CATALINA_OPTS=-Xms128M -Xmx512M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'

ExecStart=/opt/tomcat7/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID

User=tomcat
Group=tomcat
UMask=0007
RestartSec=10
Restart=always

[Install]
WantedBy=multi-user.target
サービスユニットをリロードします。
systemctl daemon-reload
これで全ての設定が完了しました。
5.テスト
systemctl start tomcat

[root@localhost ~]# curl -I 127.0.0.1:8080
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Tue, 06 Jun 2017 02:27:16 GMT
systemctl stop tomcat
curl -I 127.0.0.1:8080
curl: (7) Failed connect to 127.0.0.1:8080; Connection refused
完了します。