Я пришел к решению, которое, кажется, работает для Linux и OS X, и оно зависит от «точек монтирования». Возможно, можно будет эмулировать его и в Windows, но вам, вероятно, придется проявить изобретательность с помощью FUSE и / или Cygwin.
Если вы создаете пустую папку в своем домашнем каталоге, например, «/ Users / username / ExtraVhosts», вы можете добавить директиву apache в «Include /Users/username/ExtraVhosts/*".
».
Затем, когда вы вставляете свой флэш-накопитель, вы можете смонтировать его где-нибудь, а затем использовать «привязку» точки монтирования для сшивки папки ExtraVhosts с папкой на мобильном устройстве.
Пример OS X:
- У меня есть флешка под названием "Cherrybomb"
- Когда я вставляю его, он всегда монтируется в / Volumes / Cherrybomb
- Затем я могу использовать bindfs (sudo port install bindfs) для монтирования его подпапки, например так:
- sudo bindfs / Тома / Cherrybomb / Проекты / vhosts / Пользователи / имя пользователя / ExtraVhosts
- Затем я могу перезапустить apache, чтобы прочитать в обновленной конфигурации:
- sudo / opt / local / apache2 / bin / apachectl restart
На этом этапе нужно просто добавить записи в / etc / hosts для получения псевдонимов сервера.
В Linux-эквиваленте будет использоваться параметр --bind команды mount.
Одно предостережение: Это затрудняет быстрое отключение USB-накопителя, так как он всегда помечается как «используемый» apache. Вот процедура удаления:
- Закройте все открытые файлы и сеансы терминала, которые используют диск (текущий рабочий каталог в терминале может вызвать проблемы с размонтированием)
- Остановить apache: sudo / opt / local / apache2 / bin / apachectl stop
- umount / Пользователи / имя пользователя / ExtraVhosts
Затем вы можете размонтировать его графически или вручную (umount /Volumes/Cherrybomb).
Если ваша рабочая и домашняя машины монтируют диск в разных местах, вы можете иметь несколько папок vhosts - home_vhost, work_vhost и т. Д. - и использовать их на этапе привязки.
Надеюсь, это кому-нибудь поможет:)