Chvanikoff
@Chvanikoff

Apache запущенный под VirtualBox не отдает часть файлов при подключении со стороны хоста

Окружение, на всякий случай:
Apache 2.2.20 крутится на Ubuntu server 11.10 x86 под VirtualBox 4.1.4 Хост — Win7 x64.
Между осями поднят сетевой мост.
DocumentRoot для Apache под Ubuntu — примонтированная директория, являющаяся директорией с файлами под вин (расшарено средствами VirtualBox).

Проблема:
при попытке открыть один из проектов, часть изображений в нем не загружается. А другая — имеющая точно такой же адрес, только имя файла отличное, — загружается. То есть:
servername/project/templates/default/images/userpic.png — не загружается
servername/project/templates/default/images/new.png — загружается
При этом все файлы, разумеется, на месте. Права везде корректные.
Вот что в апачевском access.log:

192.168.0.111 - - [07/Nov/2011:03:50:35 +0400] "GET /project/templates/default/images/new.png HTTP/1.1" 200 511 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2"
192.168.0.111 - - [07/Nov/2011:03:50:50 +0400] "GET /project/templates/default/images/userpic.png HTTP/1.1" 200 291 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.106 Safari/535.2"


При этом апач отдает все файлы корректно, если запрос локальный

Ах да, на всякий случай: кэш чистил :-)
  • Вопрос задан
  • 3207 просмотров
Пригласить эксперта
Ответы на вопрос 7
wartur
@wartur
Я недавно имел дело с этой темой. После долгих тестов нашел проблему именно в расширениях VirtualBox. Когда апач работает через примонтированные виртуальные директории он отдает файлы какими-то битыми, починить, почитать или производить другие действия мне не удалось — все упирается в виртуалбокс.

(я так понимаю для хостинга тебе надо, мол места побольше)
У меня было 2 решения:
1) создание еще одного VHD с большим разделом и уже туда заливать.
2) создать тру сетевую папку, и примонтировать через сетевой мост минуя виртуалбокс. (не тестировал но зуб даю заработало-бы)

Выбрал первый вариант, так как у меня высокая степень безопасности супервизора и я отклоняю любые запросы от виртуалок.

PS: Привед друг ))). Имею абсолютно идентичную систему работы у себя на домашнем сервере за исключением, того что у меня debian и вин. сервер с дримспарка.
Ответ написан
@rPman
Уже очень давно код встроенного SMB-сервера (через который организуется встроенный шаринг файлов хост системы внутрь гостевой) кривой и глючный, баги висят годами, и не чинятся. Все дело, как я понимаю в кешировании данных.

Лучшее что можно посоветовать — не пользоваться этим механизмом.

p.s. если у вас в вируталке linux, гостевая windows — попробуйте перейти на colinux.org
это основанный на технологии user mode linux, когда никакой виртуализации процессора не происходит, а оборудование эмулируется через ядро colinux… это я к чему? тамошний встроенный механизм шаринга папок у меня год/два назад не глючил.
Сам linux переносится тупо backup/restore. из недостатков, xorg нужен под windows (есть готовые сборки portable colinux)
Ответ написан
afi
@afi
Заметил странность, если из хостовой ОС (win7) создаешь файл в общем каталоге, то в гостевой (ubuntu) он видится как, "? имя_файла" и имеет нулевой размер.

Но самое странное, что такое случается с файлами с определенным именем, например, «targets.html», в то время как файлы с другими именами создаются без проблем.
Ответ написан
@Lampus
Как сеть настроена между хостом и виртуальной машиной? Предположение чисто из разряда телепатии, но прозреваю проблему с MTU.
Ответ написан
@cat_crash
Использую связку VirtualBox (Ubuntu Server 10.04 LTS ) на Win7 x64. На виртуалке поднято 2 интерфейса: NAT и HostOnly
Все файлы проектов держу в виртуальной машине, и доступаюсь к ним из Windows через Samba.
Имхо самый «правильный» способ с точки зрения отсуствия геммора и как бонус — удобно бекапиться.
Ответ написан
Комментировать
Riateche
@Riateche
Если проблемы с VirtualBox решить не удастся, советую попробовать colinux. Для него есть готовый образ debian, в котором вы без проблем развернете всё, что вам нужно. И быстрее будет.
Ответ написан
Комментировать
mrsombre
@mrsombre
Веб-программист
Советую посмотреть вот сюда httpd.apache.org/docs/2.0/mod/core.html#enablesendfile
For NFS or SMB mounted files, this feature may be disabled explicitly for the offending files
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы