質問

vagrantを使用して、apache2を使ってUbuntu Powered VirtualBoxを実行することを使用しています。

Webサーバーは、とりわけ、/ vagrantディレクトリから静的ファイルを提供します。

これはほとんどの場合、うまく機能します。しかし、私の共有フォルダに画像を変更してWebサイトを再ロードすると、以前のバージョンのイメージが提供されますが、切り捨てられています。

それは私の共有フォルダから最初に古い写真を削除したら、写真が表示されていないようにWebサイトを更新してから、新しいファイルを保存してWebサイトを再読み込みしてください。

誰かがこの問題について知っていますか?Mongo、APCプラグイン、MongoDB、Mongo、MongoDB、束の束があるNodeJSを備えた、特別なインストール、Apache 2だけではありません。

役に立ちましたか?

解決

答えを見つけた

jc、

あなたが見ているのはおそらく静的ファイルを提供するサーバーが VirtualBoxファイルで壊れている「sendfile()」syscallを使用しています。 システム。サーバー内のsendfile()使用法を無効にする必要があります。Apacheの場合:

ENABLESENDFILE OFF

とNGINXの場合: 送信ファイルをオフにします。

ベスト、 Mitchell

他のヒント

これは私を狂わせることを運転しています!このPhilippを投稿してくれてありがとう。 設定ファイルを変更する方法を知らないあなたのために、ここに私がしたことがあります:

ファイルを見つけるには:$ sudo find -name "nginx.conf"

鉱山はここにありました:./etc/nginx/nginx.conf

だから私はこれを修正するためにこれを実行しました:$ sudo nano ./etc/nginx/nginx.conf

sendfile on;を含む行をsendfile off; に変更します。

exitvagrant reloadを忘れないでください!

VirtualBoxの古いバグです(#819 #9069 #12597 #14920 )ここでVboxVFSがあるように見える同期されているファイルへのMMAPAPEDアクセスに関する問題

これは、VMの外でファイルを編集すると発生する可能性があり、VM内で同じ変更が表示されます。

この問題を回避するには、 EnableSendfileオプションhttpd.confまたはvhostsファイルのどちらか、例えば

<Directory "/path-to-nfs-files">
  EnableSendfile Off
</Directory>
.

これは、NFSまたはSMBマウントされたファイルに対する特にトラブルです。変更がApacheをリロードした後。

Nginx nginx.conf)、例えば

sendfile off;
.


その他の回避策は、ホスト上のファイルを編集しないか、同じファイルを再編集しようとすることを忘れないでください。


他の回避策は、Linux PageCacheを削除することを含みます。

echo 1 > /proc/sys/vm/drop_caches
.

または毎秒キャッシュをクリアする(このPOST )を試してください。

watch -n 1 $(sync; echo 1 > /proc/sys/vm/drop_caches)
.

注:Number 1は、PageCache、PageCache、iノードの場合は2、PageCache、Dentries、iノードの場合は3です。


上記の問題は、次のMMAPテストプログラムによって複製できます。 mmap-problem.c

VirtualBox / Docker / Nginx環境に似た問題を抱えています。

Linux PageCache echo 1 > /proc/sys/vm/drop_cachesを削除したことの決定は細かく機能しますが厄介に見えます。

sendfile off;のディレクティブnginx.confも問題を解決し、expires off;ディレクティブで一緒に使用しようとし、成功しました。

だから、私の決断はのように見えます

sendfile off;
expires off;
.

Laravel 5、BarryvdhのデバッグバーとBrowserSyncを使用してgulp.watchを介して、このエラーが発生する可能性があります。ブラウザの同期がどのように私の要求をプロキシしていたかのために、まったく同じエラーを持っていました。 DEVサーバーを介して表示された場合: http://127.0.0.1:3000/LAVER / PAGE エラーを履いた http://127.0.0.1/Dalavel/Page エラー終了しました。

ブラウザ同期で友達とフラグを立てて、彼らは素晴らしい仕事をします。それで、それは解決策よりも理由の多くですが、それを修正しようとしている時間を過ごすのではなく、それ以上の時間を無駄にする前にあなたの問題であるかどうかを確認するためにテストしてください。

この問題は、この記事で見つかったエラーです。>

これは、CSSファイルに関する奇妙な動作もCentOS / VirtualBoxセットアップで責任を負いました。

/ vagrantフォルダ内のCSSファイルの内容を変更すると、ブラウザは200のステータスを表示します(304の代わりに)、ファイルが新しくなったことを知っていました。しかし、内容は変更されなかったでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top