CentOSにTomcatをインストールしてから起動までに必要な最初の設定


掲載日:2020年12月8日



INFOMARTION > CentOSにTomcatをインストールしてから起動までに必要な最初の設定

概要

CentOSにTomcatをインストールしてから起動までに必要な最初の設定の手順です。CentOS7を前提に記載しています。

Apache連携やログ出力先変更などについて記載しているので参考にしてみてください。

バージョンは以下となります。

CentOSのバージョン7.6 (1810)
Apacheのバージョン2.4.6
Tomcatのバージョン7.0.76
JavaのバージョンOpenJDK 1.8.0_272 64bit

目次

  1. インストール
  2. 基本設定
  3. まとめ

1. インストール

Tomcatをインストールするところから起動までの設定について記載します。

1-1. Tomcatのインストール

yumコマンドによりTomcatのインストールを実行します。rootユーザで作業を実施してください。

[username@hostname ~]$ su -
[root@hostname ~]# yum -y install tomcat

2. 基本設定

Tomcatをインストールするところから起動までの設定について記載します。先ほどのyumで「/usr/share/tomcat」が作成されます。 こちらに設定ファイルのフォルダなどのショートカットリンクなどがあるので修正していきます。

2-1. Tomcatのパス設定

Windowsで言い換えると環境変数の設定手順です。

tomcat.confに「CATALINA_HOME="/usr/share/tomcat"」の設定が入っている場合は不要です。 「/usr/share/tomcat/conf/tomcat.conf」を確認してください。

「CATALINA_HOME="/usr/share/tomcat"」が無い場合は以下の手順で追加します。

[root@hostname ~]# vi /etc/profile

末尾に以下の内容を追加します。

profile


CATALINA_HOME=/usr/share/tomcat
export CATALINA_HOME

これによりTomcatの環境変数の指定が完了します。

Tomcatを動かすためのJavaの設定も必要なので、Javaのパス設定がされていない場合は以下をご参考に設定してください。

CentOSにJavaをインストール、パス設定

「yum install java-1.8.0-openjdk」の実行でもインストール可能です。

2-2. 起動確認

Tomcatが起動するか確認します。

yumでTomcatをインストールした場合、Tomcatのトップページのhtmlがないので、まずはhtmlのインストールをします。

[root@hostname ~]# yum -y install tomcat-webapps

続いてfirewallを有効化します。Tomcatのデフォルトのポート番号は8080なので8080ポートを開けます。

[root@hostname ~]# firewall-cmd --permanent --zone=public --add-port=8080/tcp
[root@hostname ~]# firewall-cmd --reload
[root@hostname ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: dhcpv6-client http https ssh
  ports: 8080/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

「ports: 8080/tcp」となったらOKです。Tomcatを起動します。

[root@hostname ~]# tomcat start

ブラウザからアクセスします。私の場合、サーバのIPアドレスが192.168.50.10なので「http://192.168.50.10:8080/」にアクセスします。 以下のページが表示されればOKです。

無事に起動確認出来たので、Tomcatを停止します。

[root@hostname ~]# tomcat stop

2-3. Apache、Tomcatの連携設定 ※ApacheとTomcatを連携させている場合

ApacheとTomcatを連携させたい場合に設定してください。TomcatはApache入れなくてもWebサーバとして動作しますが、 Apacheのmodule機能が便利だったり、静的コンテンツのレスポンスを早くできるとか色々な理由でApacheと連携したりするとメリットがあります。

Apacheのインストール手順は以下をご確認ください。

CentOSにApacheをインストールしてから起動までに必要な最初の設定

以下、Apache側の設定変更手順です。Apacheに来たリクエストをTomcatへ渡す設定です。 「/etc/httpd/」配下にApacheの設定ファイルがある前提で記載しています。

[root@hostname ~]# vi /etc/httpd/conf/httpd.conf

以下の記述を「httpd.conf」の末尾に追記します。

httpd.conf


<Location / >
  ProxyPass ajp://localhost:8009/
  Order allow,deny
  Allow from all
</Location>

前提として、以下のモジュールを有効化する必要があるので、有効化されていない場合は有効にします。(#のコメントアウトをはずします。)

・LoadModule proxy_module modules/mod_proxy.so

・LoadModule proxy_ajp_module modules/mod_proxy_ajp.so

Apacheの起動(既に起動している場合は再起動)、Tomcatの起動をします。

[root@hostname ~]# apachectl stop
[root@hostname ~]# apachectl start
[root@hostname ~]# tomcat start

ブラウザからアクセスします。私の場合、サーバのIPアドレスが192.168.50.10なので「http://192.168.50.10/」にアクセスします。

以下のページが表示されればOKです。

無事に起動確認出来たので、Tomcatを停止します。

[root@hostname ~]# tomcat stop

図にすると以下の様なアクセスをしていたこととなります。

ちなみに、1つ前の手順では以下の様にアクセスしていました。

2-4. javaヒープ、gcログの設定

JavaヒープとはJavaのメモリ、gcログはJavaのメモリに関するログです。 Javaはヒープとして設定したメモリの設定量を使って処理をします。 どちらも、Javaの起動コマンドのオプションとして設定します。 「tomcat.conf」に設定していきます。

[root@hostname ~]# vi /usr/share/tomcat/conf/tomcat.conf

以下の内容を末尾に追記します。

CATALINA_OPTS="-server -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -Xmx256m -Xms256m -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails"

Tomcatを起動して、psコマンドを実行して設定値(-server -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -Xmx256m -Xms256m -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails)が表示されればOKです。

[root@hostname ~]# tomcat start
[root@hostname ~]# ps aux | grep java
/usr/lib/jvm/jre/bin/java -Djavax.sql.DataSource.Factory=org.apache.commons.dbcp.BasicDataSourceFactory -server -XX:MaxMetaspaceSize=256m -XX:MetaspaceSize=256m -Xmx256m -Xms256m -Xloggc:/var/log/tomcat/gc.log -XX:+PrintGCDetails -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start

上記の設定により256Mのメモリを使ってTomcatが起動します。256M以上はメモリを使わない設定となります。

gcログに関しては「/var/log/tomcat/」配下に「gc.log」でログファイルを作成する設定となります

「/var/log/tomcat/」のディレクトリ作成は次の手順で実施します。

2-5. ログの設定変更

ログディレクトリを作成して、Tomcatのログ出力パスの変更を行います。ログに関する設定は「/usr/share/tomcat/conf/logging.properties」と「/usr/share/tomcat/conf/server.xml」に記載されています。

以下、ディレクトリ作成です。

[root@hostname ~]# mkdir /var/log/tomcat
[root@hostname ~]# chmod 755 /var/log/tomcat

ディレクトリ作成をして、パーミッションを755にします。(Tomcatはログを書き込めるが、他のユーザは参照しか出来ないパーミッション)

続いて、「logging.properties」を修正します。

[root@hostname ~]# vi /usr/share/tomcat/conf/logging.properties

以下の通り修正します。

1catalina.org.apache.juli.FileHandler.level = FINE
1catalina.org.apache.juli.FileHandler.directory = /var/log/tomcat
1catalina.org.apache.juli.FileHandler.prefix = catalina.

2localhost.org.apache.juli.FileHandler.level = FINE
2localhost.org.apache.juli.FileHandler.directory = /var/log/tomcat
2localhost.org.apache.juli.FileHandler.prefix = localhost.

3manager.org.apache.juli.FileHandler.level = FINE
3manager.org.apache.juli.FileHandler.directory = /var/log/tomcat
3manager.org.apache.juli.FileHandler.prefix = manager.

4host-manager.org.apache.juli.FileHandler.level = FINE
4host-manager.org.apache.juli.FileHandler.directory = /var/log/tomcat
4host-manager.org.apache.juli.FileHandler.prefix = host-manager.


続いて、「server.xml」を修正します。

[root@hostname ~]# vi /usr/share/tomcat/conf/server.xml

以下の通り修正します。

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="/var/log/tomcat"

prefix="localhost_access" suffix=".txt"
pattern="combined" />

2-6. 自動起動設定

最後に必須ではありませんが、毎回サーバ再起動の度に起動するのは大変なので、 サーバ起動時にTomcatが自動起動するように設定を入れます。 CentOS7の場合の手順なので、CentOS7以外を使用している方はServiceコマンドにより対応する必要があるので、ご注意ください。

[root@hostname ~]# systemctl enable tomcat
[root@hostname ~]# systemctl is-enabled tomcat
enabled
[root@hostname ~]# systemctl list-unit-files --type=service | grep tomcat
tomcat.service                                enabled
[root@hostname ~]# systemctl daemon-reload

2-7. メール送信設定

こちらはTomcatでメール送信しない場合は不要な設定です。Javaでメール送信処理を実装する方は設定の参考にしてください。

まず、jar追加を行います。以下のjarをtomcatのlib配下(/usr/share/tomcat/lib/)に置き、パーミッションを他のlibと合わせます。

・javax.activation-1.2.0.jar

・javax.mail.jar

「context.xml」を修正します。

[root@hostname ~]# vi /usr/share/tomcat/conf/context.xml

context.xmlの末尾に以下を追記します。

<Context>
    <Resource name="mail/Session" auth="Container"
              type="javax.mail.Session"
              />
</Context>


3. まとめ

Tomcatをインストールした時に必要な最初の設定について記載させていただきました。

Tomcatは基本的にデフォルト設定でもある程度動きますが、実際にカスタマイズしていく場合は、ログ出力先設定や自動起動コマンドを設定しておくと後々便利なので、参考にしてみてください。

最後までご覧いただきありがとうございました。



■INFORMATION

INFORMATIONのトップページはこちらよりお願いいたします。


■PROFILE

プロフィールはこちらよりお願いいたします。


■お問い合わせ先

記事に関するお問い合わせはこちらよりお願いいたします。