Apache+Tomcat

この記事の所要時間: 約6分

XAMPPを使用してApache+Tomcatの環境を作成する。(XAMPPのバージョンは1.7.3)

手順

  1. XAMPPをインストールする。インストーラを落として実行するだけなので省略。
  2. XAMPPアドオンをインストールする。Tomcatは「xamppインストールフォルダ\tomcat\」以下にインストールされる。
  3. 「XAMPP Control Panel」から「Apache」と「Tomcat」を起動。ちなみにTomcatをスタンドアロンで動かしたい場合は「Tomcat」のみを起動する(デフォルトではポート番号は8080になっている)。
  4. おわり

まさか!これで終わり!?

「 http://localhost/examples/ 」にアクセスすると、「 http://localhost:8080/examples/ 」と同様の画面が表示されるようになっている。確かに連携されている。…いや、「examples」だけ特別に連携する設定がされているのかもしれない。

ためしに「xamppインストールフォルダ\tomcat\webapps\」に「unko」というフォルダを用意し、サンプルとして「index.jsp」を設置。内容は以下。

しかる後「 http://localhost/unko/ 」にアクセスしてみたが、やはりちゃんと表示されていた。こりゃすごい。当然、ポート8080(Tomcatスタンドアロン)を指定しても同様に表示される。

apache_tomcat_01.png apache_tomcat_02.png

Tomcat起動時に「xamppインストールフォルダ/tomcat/conf/auto/mod_jk.conf」を自動で上書きしているため、こういうことになっているようだ。このファイルをApacheで読み込む設定になっている。

Tomcatのポートを塞ぐ

ところで、このままではApacheとの連携はできてはいるが8080番ポートでもアクセスできてしまう。Tomcatの8080を塞ぐ場合は、「xamppインストールフォルダ\tomcat\conf\server.xml」の、以下の記述をコメントアウトすればよい。

バーチャルホストの設定 その1

前述の「xamppインストールフォルダ\tomcat\conf\auto\mod_jk.conf」は、デフォルトではlocalhost用の設定しかされていない。以下のような設定があるはずなので…

これをコピーし、ホスト名の部分を書き換え、公開するWebアプリの記述だけを残したものを、Apache側の設定ファイルである「xamppインストールフォルダ\apache\conf\extra\httpd-vhosts.conf」に書き足す。

そうすることで外部からアクセスしたときにもWebアプリが表示されるようになる。

apache_tomcat_03.png

バーチャルホストの設定 その2

URLのルートにWebアプリを表示したい場合は、上記その1のことは無かったことにする。

  1. 「xamppインストールフォルダ\apache\conf\httpd.conf」を開き、以下のコメントアウトを解除する。
  2. 「xamppインストールフォルダ\apache\conf\extra\httpd-vhosts.conf」に以下の設定を追加。

これでOK。

apache_tomcat_04.png

もしくは、C:\xampp\tomcat\webapps 以下のフォルダを全部消し、C:\xampp\tomcat\webapps\ROOT に対象のアプリを設定する。TomcatのROOTは「/ROOT」というコンテキスト名ではなくルートコンテキストを示すため。

追記

XAMPP 1.7.3 の時は上記の通りだったが、1.7.4ではアドオンなしで最初からTomcat 7.0.3もインストールされるようになった。でも、XAMPP Control PanelからTomcat開始・終了のボタンが消えた。

サービスの登録(管理者権限で行うこと)

サービスの解除(同上)

追記2

1.8.1を入れてみたところControl PanelにTomcatが復活していた。