
Я просмотрел все конфигурации synced_folder на сайте Vagrant...
Хостовая ОС: Windows 7 Гостевая ОС: Ubuntu
Вот моя конфигурация Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "base"
config.vm.hostname = "daison.vagrant.me"
config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.network :private_network, ip: "192.168.33.10"
config.vm.synced_folder ".", "/vagrant", disabled: true
#config.vm.synced_folder "C:\\Users\\daison\\vagrant\\src\\www", "/var/www"
end
Я тоже так делаюC:\Users\daison\vagrant\> vagrant reload
Я могу получить доступ к Apache в Ubuntu, выполнив 127.0.0.1:8080 or 192.168.33.10 or daison.vagrant.me:8080
--В МОЕМ ХОСТЕ
поэтому, удалив commented synced_folder
и перезагрузив снова vagrant. Результаты всех IP-АДРЕСОВ И МОЕГО ВИРТУАЛЬНОГО ХОСТАНЕ ДОСТУПНЫЙ--INT МОЙ ХОСТ
Я пытался получить доступvagrant ssh
vagrant@daison: cd /var/www
vagrant@daison: /var/www$ ls
и ничего не появляется...
Я также попытался создать folder
просто чтобы проверить, действительно ли работает synced_folder, даже если он замораживает гостевую папку
vagrant@daison: /var/www$ mkdir thisFolderWillAlsoShareToHost
Затем папка в моем C:\Users\daison\vagrant\src\www
созданномВ МОЕМ ХОСТЕ.
Я также попытался изменить synced_folders, чтобы "/vagrant/sample"
просто проверить , /vagrant/sample
будет ли заморожено то же самое /var/www
после перезагрузки Vagrant.
Результат: я могу получить доступ к веб-серверу, конечно, он не является частью /var/www
, но использование его ls
изнутри /vagrant/sample
также зависает.
Может кто-то сможет помочь? Спасибо!
решение1
Из того, как вы описываете свою проблему, следует, что вы создали несколько веб-сайтов на гостевой машине, настроили синхронизированную папку и ожидали, что Vagrant выполнит двунаправленную синхронизацию между хостом и гостем. Это не так работает. Включение синхронизированной папки монтирует папку с хоста в гостевой машине. Содержимое хоста маскирует любое существующее содержимое на гостевой машине. Вот что я имею в виду:
Без синхронизированной папки
> dir C:\Users\daison\vagrant\src\www
a_file_on_the host
$ ls /var/www
a_file_on_the_guest
С синхронизированными папками.
> dir C:\Users\daison\vagrant\src\www
a_file_on_the host
$ ls /var/www
a_file_on_the host
Если вы создали новый файл в гостевой ОС во время синхронизации папок
> dir C:\Users\daison\vagrant\src\www
a_file_on_the host
file_created_while_synced
$ ls /var/www
a_file_on_the host
file_created_while_synced
Отключите синхронизированную папку, и теперь вы увидите
> dir C:\Users\daison\vagrant\src\www
a_file_on_the host
file_created_while_synced
$ ls /var/www
a_file_on_the_guest
Так что если ваши веб-сайты были созданы в гостевой ОС, они больше не будут доступны во время синхронизации./var/www. Вот почему веб-сервер «зависает».