Linux Apache mod_cacheが動作しない

linux

apache2.2環境で動作していたサーバをapache2.4へ移行した際のトラブル。こんな差作らないでほしいと切に願う。。。

環境情報

  • 移行前サーバ apache2.2
  • 移行後サーバ apache2.4
  • 移行したapacheのcacheに関する設定値
<IfModule mod_cache.c>
  <IfModule mod_disk_cache.c>
    CacheRoot /var/cache/apache
    CacheEnable disk /hogehoge/contents/
    CacheIgnoreCacheControl On
    CacheIgnoreNoLastMod    On
    CacheDefaultExpire      600
    CacheMaxExpire          600
  </IfModule>
</IfModule>

状況と原因、対応

  • 状況
    • キャッシュを保持する「/var/cache/apache」内にファイルが生成されない。
    • ※元々は移行先の新サーバでディレクトリ作成忘れてたので、ソレが原因かと思ったけど、作成して権限も付与したのに、apacheを再起動しても駄目だった。
  • 原因
    • apache2.2とapache2.4でモジュール名が変わってた
■apache2.2
# apachectl -M | grep cache
 cache_module (shared)
 disk_cache_module (shared)

■apache2.4
# apachectl -M | grep cache
 cache_module (shared)
 cache_disk_module (shared)
  • 対応
    • apacheのconfigでIfModuleの表記を変更
■apache2.2
<IfModule mod_disk_cache.c>
</IfModule>

■apache2.4
<IfModule mod_cache_disk.c>
</IfModule>

disk_cachecache_diskの差で動かない。configtestで検知できないのはツライなぁ。

コメント