開発環境でVagrantを使うことはままあると思います。
凄く便利なのですがたまに罠にひっかかることも無きにしにもあらずといった感じで・・・。
今回は共有ファイルの更新が反映されないという現象にハマったときの対応をメモっておきます。
今回のゲストOSの環境は
- CentOS 7
- Nginx 1.8
- PHP 7
- PHP-FPM
- WordPress 4.6
といった感じでホストOSからは任意のPHPファイルやCSSを修正できるようになっています。
今回の現象はCSSをホストOSから修正して、ゲストOS上で動かしているWordpressにアクセスしたのにCSSへの修正が反映されないといったものでした。
その上CSSの末尾になにか変なゴミデータが・・・。
↑こんな感じです。
わかりづらいですがブラウザでCSSを開いたところです。末尾に文字化けした何かがずらーっと並んでいます。
以前LAMP環境で同じように共有フォルダ内のCSSを修正したのに反映されないという現象に遭遇したことがありました。
その時はApacheの設定ファイルを修正したので、Apache固有の現象かと思ってたのですが、Nginxでもあるんですねぇ。
さてNginxでの設定ですが
sendfile off;
という記述を追加すればよいです。
ちなみにApacheの場合は
EnableSendfile=off
とすれば良いようです。
sendfileというのは効率よくファイルを読んだりするときのシステムコールらすぃ。。
(間違ってたらごめんなさい)
記述後はサーバを再起動するなりして設定を反映させなければいけません。
Vagrant上のNginxであればオンラインで反映させないといけないなんてことは無いでしょうから、Nginxを再起動がおすすめです。
やったみたら修正は1行ですむのですが、最初はWodpressを疑ったりして無駄に時間を喰ってしまいました。
そんなお話しでした。