Apache на CentOS 5.9 VM неправильно обслуживает измененные файлы

Изменить: это было почти полностью переписано, поскольку я сузил вопрос.

Я использую виртуальную машину Vagrant для максимально точного отражения среды клиента. Я использую VirtualBox 4.3 (с гостевыми дополнениями 4.3) с Vagrant 1.3.5, а сервер работает под управлением CentOS 5.9, Apache 2.2.3-83, PHP 5.3.3 и Drupal 7.

Когда сервер впервые запускает, исходные файлы в общем каталоге, где находится мое приложение, кэшируются. Когда я изменяю файл на исходный файл +/-, дельта размера файла подается, что приводит к повреждению изображения, которое я видел ранее. Поэтому дополнения добавляют NUL-символы в конце оригинала, а удаления обрезают файл. Когда я просматриваю файл, используя nano содержание правильное; перезапуск httpd Сервис не имеет значения. Я должен перезапустить виртуальную машину для корректного обслуживания изменений.

До:

// The quick brown fox

Изменения:

// The quick brown fox jumps over the lazy dog

Apache обслуживает:

// The quick brown fox\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0

Где именно эта ошибка лежит? С Apache 2.2 или его зависимостями, или с VirtualBox и его гостевыми дополнениями?

1 ответ

Решение

Это, скорее всего, проблема с ошибкой VirtualBox sendfile() реализация.

Попробуйте установить:

EnableSendfile off

Эквивалент для nginx:

sendfile off;
Другие вопросы по тегам