ここでは、「CentOS 6 Sixwish 「CentOS 6 Sixwish 標準インストールマニュアル、標準最小構成化マニュアル」の最小構成構築の手順に従って構築された環境であることを前提としています。
そのため、異なる方法でインストールした場合は、状況が少し異なるので読替えるなどしてください。
なお、ここでの表記は「CentOS 6 Sixwish Apache Setting」まで完了した状態から始めている例です。
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 中略 ---> 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 中略 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 中略 (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 中略 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 中略 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と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の連携設定ができているか確認します。
ブラウザで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の内容も修正してください。