
У меня возникла проблема с файлами на смонтированном ресурсе внутри машины 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 к общим папкам.