Проблемы чтения общих папок Virtualbox из Apache

Проблемы чтения общих папок Virtualbox из Apache

У меня возникла проблема с файлами на смонтированном ресурсе внутри машины Virtualbox.

Проблема в том, что, хотя я могу достаточно хорошо видеть содержимое файлов из оболочки, эти же файлы оказываются слегка поврежденными, урезанными или в старых версиях, иногда при передаче по протоколу http через веб-сервер Apache.

Проблема, похоже, возникает только после того, как файл достигает определенной длины (100-200 символов). Иногда в конец добавляются нечитаемые символы, что приводит к появлению маленьких вопросительных знаков в браузере. Другим распространенным симптомом является то, что при изменении файла с хоста нет возможности заставить Apache обслуживать новую версию. (Проблема не связана с ETags, и Apache имеет идеальные права на чтение для всех файлов. Я сомневаюсь, что это связано исключительно с кодировками.)

На самом деле это похоже на проблему на уровне файловой системы, которая проявляется только в Apache.

Некоторые факты:

Хост: MacBook Pro/Snow Leopard

Гость: Fedora 16

Апач: 2.2.22

VirtualBox: 4.1.8

Я пробовал монтировать в fstab, а также вручную, меняя userid на apache.

Прошу прощения за расплывчатое (неисследованное?) описание проблемы, но я действительно не знаю, с чего начать, и надеюсь получить подсказки в правильном направлении. Это Mac, Virtualbox, Fedora или Apache, которые являются настоящей проблемой?

ОБНОВЛЕНИЕ: Я понимаю, что дело не только в том, что Apache httpd некорректно обслуживает файлы - иногда, когда я создаю новую папку на хосте, запись отображается в виде кучи вопросительных знаков при листинге каталогов в оболочке гостя. Само собой разумеется, что я не могу перейти в эту новую папку, пока не перезагружу гостя.

решение1

Посмотрите билет наhttps://www.virtualbox.org/ticket/819, там они предлагают то, что вы уже нашли, а именно ApacheВключитьОтправитьфайлдиректива. Отключение этой директивы, похоже, решает проблему на наших серверах.

решение2

Поиск по запросу «apache mmap» показывает, что Apache будет использоватьММАП(2)для доступа к файлам, когда файлы превышают определенный размер (который, по-видимому, по умолчанию равен 1 байту в системах, отличных от SunOS). Эта проблема может быть вызвана ошибкой в ​​поддержке VirtualBox доступа mmap к общим папкам.

Связанный контент