Подтвердить что ты не робот

Общая папка в VirtualBox для Apache

Мой хост-компьютер - это ArchLinux, и я запускаю Apache в гостевой системе CentOS. У меня есть конфигурация vhost и весь код сайта в общей папке. Чтобы установить конфигурацию vhost в общую папку, я установил общую папку как apache: apache.

shared    /mnt/shared    vboxsf    defaults,uid=48,gid=48  0 0

Когда я редактирую файлы на хосте, Apache последовательно запускает отправку старых версий файла с завершающими символами. В vim они отображаются как ^ @, поэтому я думаю, что они имеют нулевые символы. Число нулевых символов связано с количеством изменений, которые я делаю, даже если я редактирую первую строку, нулевые символы отображаются в конце. Если бы я размышлял, это выглядело как плохой diff.

Если я остановлю httpd, umount, перемонтирую и запустив httpd, файл выглядит нормально. Просто перезагрузка httpd не помогает.

Как я могу отладить консоль? Ничего не выскочил на меня в /var/log.

4b9b3361

Ответ 1

Я был неправ; это происходило в другом месте, но я заметил, что это было только с файлами .css и .js. Поиск привел меня к этому сообщению, в котором говорится о проблеме с vboxsf и небольшими файлами.

Решение состоит в том, чтобы установить в Apache

    EnableSendfile off

Ответ 3

Чтобы ответить на конкретный вопрос "как я могу начать отладку mount":

(приведенное ниже перефразирование, основанное на исследовании, которое я только что сделал с проблемой, вызванной тем же ошибкой в ​​Virtualbox, но с другим веб-сервером)

После диагностики проблемы происходит где-то в том, как Apache считывает файлы внутри виртуального хоста, я бы использовал "strace -p" внутри виртуального хоста для регистрации системных вызовов Apache.

В то время как stracing, запросите только один усеченный/поврежденный файл.

Тщательный диагноз покажет, что он правильно статирует файл, чтобы получить его длину. И затем он обслуживает его, используя syscall sendfile. В основном подтверждение файла отправки неверно, что означает, что это ошибка на виртуальной машине.

Поиск "sendfile virtualbox" приведет вас к этим ошибкам.

https://www.virtualbox.org/ticket/9069 https://www.virtualbox.org/ticket/12597