2009年7月3日金曜日

CentOSでのTomcat5.5とApache2.2の連携

/etc/httpd/conf.d/mod_proxy_ajp.confを編集する。
ProxyPass /tomcat/ ajp:8009/localhost/tomcat/

2009年7月2日木曜日

CentOSへのTomcat5.5のインストール

# yum install tomcat5 tomcat5-webapps tomcat5-admin-webapps
でインストールする。
webappsとadmin-webappsをインストールしなくてもtomcat自体は起動できるが、初期画面や管理アプリが使えない。

Tomcat Administration Toolにログインするにはadmin、Tomcat Webアプリケーションマネージャーにログインするにはmanagerというロールに属するユーザーが必要だがインストール直後は設定されていないため、$CATALINA_HOME/conf/tomcat-users.xmlを編集する必要がある。
とりあえず、2つのロールを定義し、両方に属するユーザーを追加した。
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
tomcatを起動し、http://localhost:8080/にアクセスすればtomcat5-webappsでインストールしたwebappが表示される。
# /etc/init.d/tomat5 start

CentOSでApacheをビルドする

準備
Apacheのモジュール開発を簡単にしてくれるapxs(perl script)をインストールする。
# yum install httpd-devel


コンパイル
モジュール名をmod_XXXとすると、mod_XXX.cを作成した後、
# apxs -c mod_XXX.c
とするだけでコンパイルが完了する。ここで、複数のソースに分けている場合は全てのソースをmod_XXX.cに続けて指定しなければならない。指定しなかった場合、指定しなかったソースで定義されている関数が見つからないということでApacheを起動できない。
# apachectl -t
httpd: Syntax error on line 176 of /etc/httpd/conf/httpd.conf:
Cannot load /etc/httpd/modules/mod_dav_fmt.so into server:
/etc/httpd/modules/mod_XXX.so: undefined symbol: 関数名


インストール
apxsはモジュールのインストールも行ってくれる。
# apxs -i -n XXX mod_XXX.la
-iはインストールを指定するオプションであり、-n XXXはモジュールの名前を明示的に指定するオプション。
-aを指定すると、httpd.confにインストールしたモジュールをロードする設定(LoadModule...)を挿入してくれる。
-Aを指定すると、コメントアウトしたロード設定(#LoadModule...)を挿入してくれる。