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-1. Tomcatのインストール
- 基本設定
- 2-1. Tomcatのパス設定
- 2-2. 起動確認
- 2-3. Apache、Tomcatの連携設定
- 2-4. javaヒープ、gcログの設定
- 2-5. ログの設定変更
- 2-6. 自動起動設定
- 2-7. メール送信設定
- まとめ
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
末尾に以下の内容を追加します。
CATALINA_HOME=/usr/share/tomcat
export CATALINA_HOME
これによりTomcatの環境変数の指定が完了します。
Tomcatを動かすためのJavaの設定も必要なので、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」の末尾に追記します。
<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は基本的にデフォルト設定でもある程度動きますが、実際にカスタマイズしていく場合は、ログ出力先設定や自動起動コマンドを設定しておくと後々便利なので、参考にしてみてください。
最後までご覧いただきありがとうございました。