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;