!!!技術的雑談-mod_jk2でログも出ずにエラー500 !!環境 Tomcat4.1 + mod_jk2 + apache2.0 !!現象 *tomcat単体のwebサーバ、アプリケーションサーバとしては正常動作 *apache2.0は正常動作 *でも、mod_jk2をonにしてapache経由でTomcatにアクセスするとInternal Server Error(500)になる *apacheのerror log(FreeBSDのport www/apache2のデフォルトだと/var/log/httpd-error.log)ファイルに以下のようなlogが出る [Wed Jul 27 23:35:44 2005] [notice] jk2_init() Found child 14444 in scoreboard slot 8 [Wed Jul 27 23:35:44 2005] [error] shm.create(): error opening file /var/log/jk2.shm 13 Permission denied [Wed Jul 27 23:35:44 2005] [error] shm.create(): error mmapping /var/log/jk2.shm [Wed Jul 27 23:35:44 2005] [notice] workerEnv.init() ok /usr/local/etc/apache2/workers2.properties [Wed Jul 27 23:35:45 2005] [error] workerEnv.init() create slot epStat.0 failed [Wed Jul 27 23:35:45 2005] [error] lb.service() worker failed 120000 for ajp13:localhost:8009 [Wed Jul 27 23:35:45 2005] [error] lb.service() unrecoverable error... [Wed Jul 27 23:35:45 2005] [error] mod_jk.handler() Error connecting to tomcat 120000 '''shm.create(): error opening file /var/log/jk2.shm 13 Permission denied''' */var/log/jk2.shm(mod_jk2設定ファイルで設定されたmod_jk2のlogファイル)が存在しない !!原因 mod_jk2のlogファイルが存在しない、もしくは存在予定のディレクトリがapacheの実行ユーザで書き込みアクセスできないpermissionになっているためです。 mod_jk2のlogファイルの位置は設定ファイル(〜.properties)で以下の行で設定されます。 [shm:] file=/var/log/jk2.shm size=1000000 disabled=0 また、mod_jk2の設定ファイルはhttpd.conf(portのデフォルトだと/usr/local/etc/apache2/httpd.conf)で以下のように設定されているはずです。 JkSet config:file ${serverRoot}/etc/apache2/workers2.properties !!対処 mod_jk2のlogファイルがあるべき場所に空のlogファイルを作ってあげましょう。 #touch /var/log/jk2.shm  ←ファイルの作成 #chown www:www /var/log/jk2.shm  ←apacheの実行ユーザーで書き込みできるように この後、apacheを再起動します。 #apachectl restart !!履歴 2005/7/27 -- 初版 [[技術的雑談]]へ戻る !!突っ込み {{comment}} [[技術的雑談]]へ戻る {{trackback}} [[技術的雑談]]へ戻る