カスタム検索
tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

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


 ApacheとTomcat4の連携の小技

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"

が自動的に挿入されています。


To previous pageTo home pageMailing to meJump to Top of pageline.gif (927 ツバツイツト)tomo.gif (1144 ツバツイツト)
カスタム検索


Tweet