Probleme beim Lesen freigegebener Virtualbox-Ordner von Apache

Probleme beim Lesen freigegebener Virtualbox-Ordner von Apache

Ich habe ein Problem mit Dateien auf einer gemounteten Freigabe innerhalb einer Virtualbox-Maschine.

Das Problem besteht darin, dass, obwohl ich den Inhalt der Dateien von der Shell aus deutlich erkennen kann, dieselben Dateien leicht beschädigt, abgeschnitten oder in alten Versionen angezeigt werden, manchmal, wenn sie über http über einen Apache-Webserver bereitgestellt werden.

Das Problem scheint nur aufzutreten, wenn die Datei eine bestimmte Länge (100-200 Zeichen) erreicht. Manchmal werden am Ende nicht lesbare Zeichen hinzugefügt, was zu kleinen Fragezeichen im Browser führt. Ein weiteres häufiges Symptom ist, dass es keine Möglichkeit gibt, Apache dazu zu bringen, die neue Version bereitzustellen, wenn die Datei vom Host geändert wird. (Das Problem hängt nicht mit ETags zusammen und Apache hat perfekte Leseberechtigungen für alle Dateien. Ich bezweifle auch, dass es ausschließlich mit Kodierungen zusammenhängt.)

Es sieht wirklich nach einem Problem auf Dateisystemebene aus, das nur in Apache auftritt.

Einige Fakten:

Host: MacBook Pro/Snow Leopard

Gast: Fedora 16

Apache: 2.2.22

VirtualBox: 4.1.8

Ich habe versucht, es in fstab zu mounten, aber auch manuell, und die Benutzer-ID in Apache geändert.

Ich entschuldige mich für die vage (unrecherchierte?) Problembeschreibung, aber ich weiß wirklich nicht, wo ich anfangen soll, und hoffe, einige Hinweise in die richtige Richtung zu bekommen. Ist Mac, Virtualbox, Fedora oder Apache das eigentliche Problem?

UPDATE: Mir ist klar, dass es mehr ist als nur, dass Apache httpd die Dateien nicht richtig bereitstellt. Manchmal, wenn ich einen neuen Ordner auf dem Host erstelle, wird der Eintrag bei einer Verzeichnisauflistung in der Shell des Gasts als eine Reihe von Fragezeichen angezeigt. Es versteht sich fast von selbst, dass ich nicht in diesen neuen Ordner wechseln kann, bis ich den Gast neu gestartet habe.

Antwort1

Das Ticket finden Sie unterhttps://www.virtualbox.org/ticket/819, dort schlagen sie vor, was Sie bereits gefunden haben, nämlich die ApacheDatei senden aktivierenDirektive. Das Ausschalten dieser Direktive scheint das Problem auf unseren Servern zu lösen.

Antwort2

Einige Suchanfragen für "apache mmap" zeigen, dass Apachemmap(2)um auf Dateien zuzugreifen, wenn die Dateien eine bestimmte Größe überschreiten (die auf Nicht-SunOS-Systemen standardmäßig 1 Byte zu sein scheint). Dieses Problem könnte durch einen Fehler in der Unterstützung von VirtualBox für mmap-Zugriff auf freigegebene Ordner verursacht werden.

verwandte Informationen