- 追加された行はこのように表示されます。
- 削除された行は
このように表示されます。
!!!技術的雑談-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}}
[[技術的雑談]]へ戻る