CentOS 6
Tomcat Setting
About
ここでは、「CentOS 6 Sixwish 標準インストールマニュアル、標準最小構成化マニュアル」の手順に従って構築された環境であることを前提としています。 そのため、異なる方法でインストールした場合は、状況が少し異なるので読替えるなどしてください。
なお、ここでの表記は「CentOS 6 Sixwish Apache Setting」まで完了した状態から始めている例です。
Tomcatのインストール
yumを使ってインストールします。
インストールするパッケージは50前後あります。
[root@sixwish ~]# yum -y install tomcat6
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tomcat6.noarch 0:6.0.24-24.el6_0 set to be updated
base/filelists_db | 4.7 MB 00:00
extras/filelists_db | 736 B 00:00
updates/filelists_db | 2.3 MB 00:00
--> Processing Dependency: tomcat6-lib = 6.0.24-24.el6_0 for package: tomcat6-6.0.24-24.el6_0.noarch
--> Processing Dependency: jakarta-commons-logging for package: tomcat6-6.0.24-24.el6_0.noarch
--> Processing Dependency: redhat-lsb for package: tomcat6-6.0.24-24.el6_0.noarch
--> Processing Dependency: redhat-lsb for package: tomcat6-6.0.24-24.el6_0.noarch
--> Processing Dependency: jakarta-commons-daemon for package: tomcat6-6.0.24-24.el6_0.noarch
<em>中略</em>
---> Package java_cup.i686 1:0.10k-5.el6 set to be updated
---> Package perl-Pod-Escapes.i686 1:1.04-115.el6 set to be updated
---> Package xz.i686 0:4.999.9-0.3.beta.20091007git.el6 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package Arch Version Repository
Size
==========================================================================================
Installing:
tomcat6 noarch 6.0.24-24.el6_0 updates 86 k
Installing for dependencies:
at i686 3.1.10-43.el6 updates 59 k
axis noarch 1.2.1-7.2.el6 base 1.5 M
bc i686 1.06.95-1.el6 base 106 k
bcel i686 5.2-7.2.el6 base 1.2 M
classpathx-jaf i686 1.0-15.4.el6 base 92 k
<em>中略</em>
xml-commons-resolver i686 1.1-4.18.el6 base 128 k
xz i686 4.999.9-0.3.beta.20091007git.el6 base 137 k
xz-lzma-compat i686 4.999.9-0.3.beta.20091007git.el6 base 16 k
zip i686 3.0-1.el6 base 252 k
Transaction Summary
==========================================================================================
Install 51 Package(s)
Upgrade 0 Package(s)
Total download size: 48 M
Installed size: 132 M
Downloading Packages:
(1/51): at-3.1.10-43.el6.i686.rpm | 59 kB 00:00
(2/51): axis-1.2.1-7.2.el6.noarch.rpm | 1.5 MB 00:00
(3/51): bc-1.06.95-1.el6.i686.rpm | 106 kB 00:00
(4/51): bcel-5.2-7.2.el6.i686.rpm | 1.2 MB 00:00
(5/51): classpathx-jaf-1.0-15.4.el6.i686.rpm | 92 kB 00:00
<em>中略</em>
(48/51): xml-commons-resolver-1.1-4.18.el6.i686.rpm | 128 kB 00:00
(49/51): xz-4.999.9-0.3.beta.20091007git.el6.i686.rpm | 137 kB 00:00
(50/51): xz-lzma-compat-4.999.9-0.3.beta.20091007git.el6.i686.rpm | 16 kB 00:00
(51/51): zip-3.0-1.el6.i686.rpm | 252 kB 00:00
------------------------------------------------------------------------------------------
Total 3.5 MB/s | 48 MB 00:13
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : 1:perl-Pod-Escapes-1.04-115.el6.i686 1/51
Installing : 3:perl-version-0.77-115.el6.i686 2/51
Installing : 1:perl-Module-Pluggable-3.90-115.el6.i686 3/51
Installing : 1:perl-Pod-Simple-3.13-115.el6.i686 4/51
Installing : 4:perl-libs-5.10.1-115.el6.i686 5/51
<em>中略</em>
Installing : axis-1.2.1-7.2.el6.noarch 48/51
Installing : 1:mx4j-3.0.1-9.13.el6.noarch 49/51
Installing : tomcat6-lib-6.0.24-24.el6_0.noarch 50/51
Installing : tomcat6-6.0.24-24.el6_0.noarch 51/51
Installed:
tomcat6.noarch 0:6.0.24-24.el6_0
Dependency Installed:
at.i686 0:3.1.10-43.el6
axis.noarch 0:1.2.1-7.2.el6
bc.i686 0:1.06.95-1.el6
bcel.i686 0:5.2-7.2.el6
classpathx-jaf.i686 0:1.0-15.4.el6
<em>中略</em>
xml-commons-resolver.i686 0:1.1-4.18.el6
xz.i686 0:4.999.9-0.3.beta.20091007git.el6
xz-lzma-compat.i686 0:4.999.9-0.3.beta.20091007git.el6
zip.i686 0:3.0-1.el6
Complete!
[root@sixwish ~]#
あわせて動作検証用にtomcat6-webappsパッケージもインストールします。
[root@sixwish ~]# yum -y install tomcat6-webapps
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tomcat6-webapps.noarch 0:6.0.24-24.el6_0 set to be updated
--> Processing Dependency: jakarta-taglibs-standard >= 1.1 for package: tomcat6-webapps-6.0.24-24.el6_0.noarch
--> Running transaction check
---> Package jakarta-taglibs-standard.noarch 0:1.1.1-11.4.el6 set to be updated
--> Processing Dependency: xalan-j2 >= 2.6.0 for package: jakarta-taglibs-standard-1.1.1-11.4.el6.noarch
--> Processing Dependency: apache-tomcat-apis for package: jakarta-taglibs-standard-1.1.1-11.4.el6.noarch
--> Running transaction check
---> Package apache-tomcat-apis.noarch 0:0.1-1.el6 set to be updated
---> Package xalan-j2.noarch 0:2.7.0-9.8.el6 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
==========================================================================================
Package Arch Version Repository Size
==========================================================================================
Installing:
tomcat6-webapps noarch 6.0.24-24.el6_0 updates 606 k
Installing for dependencies:
apache-tomcat-apis noarch 0.1-1.el6 base 164 k
jakarta-taglibs-standard noarch 1.1.1-11.4.el6 base 384 k
xalan-j2 noarch 2.7.0-9.8.el6 base 1.8 M
Transaction Summary
==========================================================================================
Install 4 Package(s)
Upgrade 0 Package(s)
Total download size: 2.9 M
Installed size: 3.7 M
Downloading Packages:
(1/4): apache-tomcat-apis-0.1-1.el6.noarch.rpm | 164 kB 00:00
(2/4): jakarta-taglibs-standard-1.1.1-11.4.el6.noarch.rpm | 384 kB 00:00
(3/4): tomcat6-webapps-6.0.24-24.el6_0.noarch.rpm | 606 kB 00:00
(4/4): xalan-j2-2.7.0-9.8.el6.noarch.rpm | 1.8 MB 00:00
------------------------------------------------------------------------------------------
Total 4.1 MB/s | 2.9 MB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : apache-tomcat-apis-0.1-1.el6.noarch 1/4
Installing : xalan-j2-2.7.0-9.8.el6.noarch 2/4
Installing : jakarta-taglibs-standard-1.1.1-11.4.el6.noarch 3/4
Installing : tomcat6-webapps-6.0.24-24.el6_0.noarch 4/4
Installed:
tomcat6-webapps.noarch 0:6.0.24-24.el6_0
Dependency Installed:
apache-tomcat-apis.noarch 0:0.1-1.el6 jakarta-taglibs-standard.noarch 0:1.1.1-11.4.el6
xalan-j2.noarch 0:2.7.0-9.8.el6
Complete!
[root@sixwish ~]#
動作確認
まずはアクセスできるかどうかを確認します。
ブート時にTomcatを起動させるため定期実行をonに設定し、Tomcatを起動させます。
[root@sixwish ~]# chkconfig tomcat6 on
[root@sixwish ~]# /etc/rc.d/init.d/tomcat6 start
Starting tomcat6: [ OK ]
[root@sixwish ~]#
Tomcatを起動した状態でブラウザから8080ポートへアクセスを試みます。
ブラウザを開き、http://ホスト名(IPアドレス):8080/ へアクセスします。
おそらく何も表示されないと思うので、ファイアウォールの設定を行います。
[root@sixwish ~]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:443
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 PHYSDEV match --physdev-is-bridged
REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@sixwish ~]#
Apacheの設定を行っただけであれば、上のような感じで表示されると思います。
tcp 8080(http)、tcp 8443(https)へのアクセスも拒否しているようなので、そこを追加します。
[root@sixwish ~]# cp /etc/sysconfig/iptables /etc/sysconfig/iptables-`date -I`
[root@sixwish ~]# vi /etc/sysconfig/iptables
*** /etc/sysconfig/iptables-YYYY-mm-dd YYYY-mm-dd hh:ii:ss.000000000 +0900
--- /etc/sysconfig/iptables YYYY-mm-dd hh:ii:ss.000000000 +0900
***************
*** 10,16 ****
--- 10,17 ----
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
+ -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
+ -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@sixwish ~]#
二行追加してください。
編集できたら、iptablesを再ロードします。
[root@sixwish ~]# service iptables restart
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
[root@sixwish ~]#
再びブラウザでhttp://ホスト名(IPアドレス):8080/へアクセスします。
Tomcatのトップ画面が表示されていれば完了です。
Apacheとの連携
開発環境として一般公開しないのであればこれ以降は不要という考え方もありますが、一応、ApacheとTomcatの連携を取るための設定を行います。
まずファイアーウォールの再設定を行います。
これは、ApacheとTomcatの連携を行う場合はApache経由でTomcatに接続するため、8080および8443ポートから直接Tomcatを使用しないようにファイアーウォールを設定しなおします。
[root@sixwish conf.d]# vi /etc/sysconfig/iptables
*** /etc/sysconfig/iptables-YYYY-mm-dd YYYY-mm-dd hh:ii:ss.000000000 +0900
--- /etc/sysconfig/iptables YYYY-mm-dd hh:ii:ss.000000000 +0900
***************
*** 10,16 ****
--- 10,17 ----
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
+ #-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
+ #-A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@sixwish conf.d]#
8080ポートをコメントアウトして、iptablesを再ロードします。
[root@sixwish ~]# service iptables restart
iptables: ファイアウォールルールを消去中: [ OK ]
iptables: チェインをポリシー ACCEPT へ設定中filter [ OK ]
iptables: モジュールを取り外し中: [ OK ]
iptables: ファイアウォールルールを適用中: [ OK ]
[root@sixwish conf.d]#
次に、Tomcatの設定を設定を確認します。
[root@sixwish ~]# cd /etc/tomcat6
[root@sixwish tomcat6]#vi /etc/tomcat6/server.xml
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
上記がコメントアウトされていないことを確認します。 mod_proxy.so,mod_proxy_ajp.soを使用するため、httpdの設定を確認します。
[root@sixwish tomcat6]#cd /etc/httpd/conf
[root@sixwish conf]# vi /etc/httpd/conf/httpd.conf
*** /etc/httpd/conf/httpd.conf.YYYY-mm-dd YYYY-mm-dd hh:ii:ss.000000000 +0900
--- /etc/httpd/conf/httpd.conf YYYY-mm-dd hh:ii:ss.000000000 +0900
***************
*** 190,200 ****
LoadModule rewrite_module modules/mod_rewrite.so
! #LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
! #LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
#LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule cgi_module modules/mod_cgi.so
--- 190,200 ----
LoadModule rewrite_module modules/mod_rewrite.so
! LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
! LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
#LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule cgi_module modules/mod_cgi.so
ここまでの手順どおりであれば、mod_proxy.so、mod_proxy_ajp.so がコメントアウトされているので、コメントアウトを外します。
続いて、httpdのオプション設定ファイルを作成します。
[root@sixwish conf]# cd /etc/httpd/conf.d/
[root@sixwish conf.d]# vi /etc/httpd/conf.d/proxy_ajp.conf
ProxyPass /examples/ ajp://127.0.0.1:8009/examples/
[root@sixwish conf.d]#
上記は/examples/配下をTomcatに中継させる場合の設定になります。
自作のWEBアプリを格納する場合/examples/の部分を適宜変更してください。
もし、すべてのアクセスをTomcatに全てを中継させる場合は以下のように設定します。
ProxyPass / ajp://127.0.0.1:8009/
最後に起動順の確認を行います。
ApacheとTomcatを連携させて使用する場合、ブート時のプロセスの起動順がtomcat→httpdの順になっている必要があります。
このため、プロセスの起動順を確認します。
[root@sixwish conf.d]# ls /etc/rc.d/rc3.d/
K10saslauthd K75ntpdate K87rpcbind S08iptables S26udev-post S85httpd
K50dnsmasq K85rpcgssd K89rdisc S10network S55sshd S90crond
K50netconsole K85rpcidmapd S02lvm2-monitor S11auditd S58ntpd S95atd
K60nfs K86cgred S05cgconfig S12rsyslog S60vsftpd S97libvirtd
K69rpcsvcgssd K86nfslock S07iscsid S13iscsi S80postfix S98libvirt-guests
K75netfs K87restorecond S08ip6tables S22messagebus S80tomcat6 S99local
Sの後ろの数値が小さい順から起動されていきます。
tomcatがhttpdよりも大きい数値が設定されていた場合はSXXtomcat6かSXXhttpdのファイル名を変更し起動順を調節する必要があります。
それでは手動でTomcat->httpdの順にサービスを再開します。
[root@sixwish conf.d]# service tomcat6 restart
Stopping tomcat6: [ OK ]
Starting tomcat6: [ OK ]
[root@sixwish conf.d]#
[root@sixwish conf.d]# service httpd restart
httpd を停止中: [ OK ]
httpd を起動中: [ OK ]
[root@sixwish conf.d]#
以上で完了です。
Apache Tomcat連携確認
ApacheとTomcatの連携設定ができているか確認します。
ブラウザでhttp://ホスト名(IPアドレス)/examples/にアクセスします。
ものすごく簡単なページが表示され、サンプルを見ることができると思います。
なお、tomcat6-webappsパッケージは動作検証用のパッケージのため、確認が完了したらアンインストールしても問題ありません。
むしろ、何かトラブルのもとになる可能性が高いので積極的にアンインストールしましょう。
その場合は以下のように行ってください。
[root@sixwish conf.d]# rpm -e apache-tomcat-apis xalan-j2 jakarta-taglibs-standard tomcat6-webapps
[root@sixwish conf.d]#
アンインストール後はブラウザからhttp://ホスト名(IPアドレス)/examples/でアクセスしても400エラーが表示されます。
これに合わせて、/etc/httpd/conf.d/proxy_ajp.confの内容も修正してください。