5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Vagrant 上でアプリケーションを開発している時にファイルの変更がうまくいかない問題の解決策

5
Posted at

Vagrantの共有フォルダをWebroot 直下に設定し、ローカルからファイルをアップロードしている時に、  
ファイルの更新がうまく反映されないという問題が起きた。
今回はJSファイルを編集中に問題が起きたが、過去にCSS でも同様の問題が起きたことがあるらしい。

出来事

図1:エラー画面のスクリーンショット
error.png

こんなコード書いた覚えが無かったので慌ててエディタをカクニン!
図2:図1の状況が起きた時のエディタのスクリーンショット
Editor.png
ちゃんとある!!!

解決法

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 公式ドキュメント

5
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?