ApacheからのVirtualbox共有フォルダの読み取り問題

ApacheからのVirtualbox共有フォルダの読み取り問題

Virtualbox マシン内のマウントされた共有上のファイルに問題があります。

問題は、シェルからファイルの内容を十分に確認できるにもかかわらず、Apache Web サーバー経由で http 経由で提供される場合、同じファイルがわずかに破損したり、切り捨てられたり、古いバージョンになったりすることです。

この問題は、ファイルが特定の長さ (100 ~ 200 文字) に達したときにのみ発生するようです。末尾に読み取り不可能な文字が追加され、ブラウザに小さな疑問符が表示されることもあります。もう 1 つの一般的な症状は、ホストからファイルが変更されると、Apache に新しいバージョンを提供させる方法がないことです。(この問題は ETags とは関係がなく、Apache はすべてのファイルに対して完全な読み取り権限を持っています。エンコーディングだけに関連するとも考えられません。)

これは実際には Apache でのみ発生するファイルシステム レベルの問題のように見えます。

いくつかの事実:

ホスト: MacBook Pro/Snow Leopard

ゲスト: Fedora 16

アパッチ: 2.2.22

バーチャルボックス: 4.1.8

fstab でのマウントも試みましたが、ユーザー ID を apache に変更して手動でもマウントしました。

問題の説明が曖昧で(調査不足?)、申し訳ありませんが、どこから始めたらよいのか本当にわかりません。正しい方向へのヒントをいただければ幸いです。実際の問題は、Mac、Virtualbox、Fedora、それとも Apache でしょうか?

更新: Apache httpd がファイルを正しく提供していないというだけではないことが分かりました。ホストに新しいフォルダーを作成すると、ゲストのシェルでディレクトリの一覧を表示するときに、エントリが一連の疑問符として表示されることがあります。言うまでもなく、ゲストを再起動するまで、その新しいフォルダーに移動することはできません。

答え1

チケットはこちらをご覧くださいhttps://www.virtualbox.org/ticket/819、そこではあなたがすでに見つけたApacheのファイル送信を有効にするディレクティブ。このディレクティブをオフにすると、サーバー上の問題が解決するようです。

答え2

「apache mmap」を検索すると、Apacheが使用することがわかります。mmap(2)ファイルが特定のサイズ (SunOS 以外のシステムではデフォルトで 1 バイトのようです) を超えると、ファイルにアクセスできなくなります。この問題は、VirtualBox の共有フォルダへの mmap アクセスのサポートにおけるバグが原因である可能性があります。

関連情報