ApacheとTomcatを連動させてみる
Modified: 28 July 2005, 23 August 2003
ApacheとTomcat4の連携の小技 (23 August 2003)
Tomcat4 - mod_jk2 のダウンロード、インストール、そして連動テスト (28 July 2005)
Tomcat4 - mod_webapp.so のダウンロード、インストール、そして連動テスト (23 August 2003)
Tomcat3 - mod_jk.so のダウンロード、インストール、そして連動テスト (26 May 2002)
Tomcat3 - 多くの解説書の説明との違い (26 May 2002)
httpdの再起動すると、"Invalid virtual host name" が出る
# /etc/init.d/httpd restart httpdを停止中: [失敗] httpdを起動中: Syntax error on line 1459 of /etc/httpd/conf/httpd.conf: Invalid virtual host name [失敗] #"/etc/httpd/conf/httpd.conf" の "ServerName" 設定するとOKです。
: # ServerName localhost :コメントをはずして、保存後、再起動します。
: ServerName localhost :
httpdの再起動すると、"Invalid command 'WebAppMount'" が出る
# /etc/init.d/httpd restart httpdを停止中: [ OK ] httpdを起動中: Syntax error on line 1459 of /etc/httpd/conf/httpd.conf: Invalid command 'WebAppMount', perhaps mis-spelled or defined by a module not in cluded in the server configuration [失敗] [root@rh73-134-tomcat4 tomo]#Tomcat4から、"WebAppMount"が、"WebAppDeploy"に変わりました。
したがって、以下は、
:
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppMount examples warpConnection /examples/
</IfModule>以下のように変更が必要です。
:
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
</IfModule>
どうも連携がうまくいかない
理由は不明ですが、以下ではだめです。
:
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
WebAppDeploy manager warpConnection /manager/
WebAppDeploy webdav warpConnection /webdav/
</IfModule>以下のように、"manager"や"webdav"は、無効にしないといけません。
:
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
# WebAppDeploy manager warpConnection /manager/
# WebAppDeploy webdav warpConnection /webdav/
</IfModule>
Tomcat4
- mod_webapp.so
のダウンロード、インストール、そして連動テスト ![]()
ダウンロードする
以下からダウンロードしました。
http://jakarta.apache.org/builds/jakarta-tomcat-4.0/archives/v4.0/rpms/
RPMやバイナリの登録はありませんでしたので、"mod_webapp-1.0-1.i386.rpm" をダウンロードしました。(2003年8月23日)
インストールする
# rpm -ivh mod_webapp-1.0-1.i386.rpm Preparing... ########################################### [100%] 1:mod_webapp ########################################### [100%] #
httpd.conf を変更する
"/etc/httpd/conf/httpd.conf"を変更します。
:
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppMount examples warpConnection /examples/
WebAppMount manager warpConnection /manager/
WebAppMount webdav warpConnection /webdav/
</IfModule>上記を、以下のように変更します。
:
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
WebAppDeploy manager warpConnection /manager/
WebAppDeploy webdav warpConnection /webdav/
</IfModule>
httpサーバーとTomcat4が別のサーバーの場合、"WebAppConnection warpConnection warp localhost:8008"の、"localhost"を、tomcat4のサーバー名に変更します。
"server.xml" を変更する
"/etc/tomcat4/server.xml" を変更します。コネクタは、コメントアウトされているので、コメント行を削除します。
: : <!-- Define an Apache-Connector Service --> <!-- <Service name="Tomcat-Apache"> <Connector className="org.apache.catalina.connector.warp.WarpConnector" port="8008" minProcessors="5" maxProcessors="75" enableLookups="true" appBase="webapps" acceptCount="10" debug="0"/> <Engine className="org.apache.catalina.connector.warp.WarpEngine" name="Apache" debug="0"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="apache_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.MemoryRealm" /> </Engine> </Service> --> : :
起動する
# /etc/init.d/tomcat4 restart Starting tomcat4: [ OK ] # /etc/init.d/httpd restart httpdを停止中: [失敗] httpdを起動中: [失敗] #
Tomcat4
- mod_jk2
のダウンロード、インストール、そして連動テスト ![]()
ダウンロードする
以下からダウンロードしました。
http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/v2.0.1/rpms/
"mod_jk2-ap20-2.0.1-1jpp.i386.rpm" をダウンロードしました。
インストールする
# rpm -ivh mod_webapp-1.0-1.i386.rpm Preparing... ########################################### [100%] 1:mod_webapp ########################################### [100%] #
httpd.conf を変更する
"/etc/httpd/conf/httpd.conf"を変更します。
:
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppMount examples warpConnection /examples/
WebAppMount manager warpConnection /manager/
WebAppMount webdav warpConnection /webdav/
</IfModule>上記を、以下のように変更します。
:
<IfModule mod_webapp.c>
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
WebAppDeploy manager warpConnection /manager/
WebAppDeploy webdav warpConnection /webdav/
</IfModule>
httpサーバーとTomcat4が別のサーバーの場合、"WebAppConnection warpConnection warp localhost:8008"の、"localhost"を、tomcat4のサーバー名に変更します。
"server.xml" を変更する
"/etc/tomcat4/server.xml" を変更します。コネクタは、コメントアウトされているので、コメント行を削除します。
: : <!-- Define an Apache-Connector Service --> <!-- <Service name="Tomcat-Apache"> <Connector className="org.apache.catalina.connector.warp.WarpConnector" port="8008" minProcessors="5" maxProcessors="75" enableLookups="true" appBase="webapps" acceptCount="10" debug="0"/> <Engine className="org.apache.catalina.connector.warp.WarpEngine" name="Apache" debug="0"> <Logger className="org.apache.catalina.logger.FileLogger" prefix="apache_log." suffix=".txt" timestamp="true"/> <Realm className="org.apache.catalina.realm.MemoryRealm" /> </Engine> </Service> --> : :
起動する
# /etc/init.d/tomcat4 restart Starting tomcat4: [ OK ] # /etc/init.d/httpd restart httpdを停止中: [失敗] httpdを起動中: [失敗] #
Tomcat3
- mod_jk.so
のダウンロード、インストール、そして連動テスト ![]()
ダウンロードする
以下から、tomcatのRPMSをダウンロードします。
http://jakarta.apache.org/builds/jakarta-tomcat/release/v3.3.1/rpms/
私は、"tomcat-mod-3.3.1-1.i386.rpm"をダウンロードしました。(2002年5月26日時点)
ApacheとTomcatのコネクタをインストール
"mod_jk.so"をコピーし、"httpd.conf"に設定し、ApacheからTomcatにリクエストが出せるようにします。これで、連係動作できるようになります。
# rpm -ivh tomcat-mod-3.3.1-1.i386.rpm
Preparing... ########################################### [100%]
1:tomcat-mod ########################################### [100%]#
Apacheとの連携動作テストをする
以下のように、URLから8080を取って開いてみます。
http://rh72server/examples/servlets/index.html 以下のように、8080指定なしでも開けば、Apacheとの連携動作はOKです。
ついでながら、サンプルの Hello World も開いてみます。以下のように開けば完了です。
Tomcat3
- 多くの解説書の説明との違い
![]()
Tomcatのインストール先
最新のRPMをインストールすると、多くの解説書とは違う点があります。
"conf"ファイルの場所
"conf"ファイルは、"/etc/tomcat3/conf"
Webデータの場所
Webデータは、"/var/tomcat3/webapps"
起動順位
多くの解説書では、必ず、Tomcatを先に起動し、Apacheを後から起動すると書いてありますが、この場合は、Apacheを先に起動してもかまいません。
"httpd.conf"の変更
多くの解説書では、"httpd.conf"の中に、
"Include /usr/local/.../mod_jk.conf-auto"
のように、"mod_jk.conf-auto"をインクルードするようになっていますが、
"Include /etc/httpd/conf/mod_jk.conf"
が自動的に挿入されています。