トップ 一覧 検索 ヘルプ RSS ログイン

技術的雑談-mod_jk2でログも出ずにエラー500の変更点

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

[[技術的雑談]]へ戻る