Назад | Перейти на главную страницу

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

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

Я использую Vagrant VM, чтобы максимально точно отразить клиентскую среду. Я использую 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 и его гостевыми дополнениями?

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

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

EnableSendfile off

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

sendfile off;