Vagrantの共有フォルダをWebroot 直下に設定し、ローカルからファイルをアップロードしている時に、
ファイルの更新がうまく反映されないという問題が起きた。
今回はJSファイルを編集中に問題が起きたが、過去にCSS でも同様の問題が起きたことがあるらしい。
出来事
こんなコード書いた覚えが無かったので慌ててエディタをカクニン!
図2:図1の状況が起きた時のエディタのスクリーンショット

ちゃんとある!!!
解決法
httpd.conf の一番下に以下の2行を追加
`EnableMMAP Off`
`EnableSendfile Off`
ー>apache の再起動
sudo systemctl restart httpd
ちなみに・・・
上記の方法が分かる前に試してみた解決策
1 Vagrant を再起動する。
2 めっちゃリロードする。
試してみた解決策の問題点
めっちゃ時間がかかる。
原因を調べてみた
上記2つの設定をOFFにしたのだから、それらの設定が鍵を握っているに違いない。
ということで、調べた。
公式ドキュメント enablemmap
公式ドキュメント enablesendfile
公式ドキュメントにこのように記載されている。
NFS マウントされた DocumentRoot では、httpd がメモリマップしている間に
ファイルが削除されたり短くなったりしたときに起こるセグメンテーションフォールトのために
httpd がクラッシュする可能性があります。
~Apache 2.2 公式ドキュメント~
NFS (Network File System) マウント
Linuxが動作するPC(環境?)と別のPCのディレクトリを共有するときに使う手法の一つ
ちなみにVagrant はNFS を使う(らしい)
ということで、Vagrant 環境で開発する際は、
`EnableMMAP Off`
`EnableSendfile Off`
が重要という話でした。
環境
CentOS7.1
Apache 2.4
(ちなみにApache 2.4に特有の現象というわけではないらしいです。Apache 2.2 公式ドキュメント)
