×

Sign in with twitter.

You can follow the user and hashtags.

Share your tips on social media.

Post relative tips.

If you have relative tips, click [Add relative tips] to post.

Virtualbox上のApacheでホストマシンと共有している静的ファイル(CSSなど)の更新が検知されない問題を解決する方法

@osakanapower@osakanapower 7237 viewer 60 embed viewer embed
■環境
Virtualbox7.0.1、CentOS6、Apache2

■現象
Virtualboxの共有フォルダ機能でホストのMacのworkspaceを
ゲストのCentOSにマウントしてDocumentRootに設定し、開発していたところCSSを変更しても反映されない。

応急的にはサーバーを再起動すると反映される。
また、該当のファイルを削除して、作りなおすことでも反映される。

■原因
Apacheの静的ファイルをメモリ上にキャッシュする機能が原因のよう。
通常、キャッシュされたファイルが更新された場合、更新を検知して再読み込みを行うはずですが、
NFS、SMBなどの外部ストレージ上のファイルの場合正しく更新を検知できないようです。
(Virtualboxの共有フォルダはApacheからはNFSのように見えるみたい)

■解決策
下記の記事を参考に解決することができました。
http://cantuse.it/2009/01/virtualbox-apache2-strange-caching-issues/

具体的には以下のように設定することで解消できました。
<Directory /media/sf_workspace>
EnableMMAP Off
EnableSendfile Off
</Directory>

■参考
http://httpd.apache.org/docs/2.0/ja/mod/core.html
http://q.hatena.ne.jp/1263439075

#virtualbox
Add relative tips

Users who share this tip.

Comments