Изменить: это было почти полностью переписано, поскольку я сузил проблему.
Я использую 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;