config.vm.synced を実行すると Vagrant ゲストの /var/www がフリーズする

config.vm.synced を実行すると Vagrant ゲストの /var/www がフリーズする

Vagrant の Web サイトですべての synced_folder 構成を確認しました...

ホストOS: Windows 7 ゲストOS: 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

UbuntuのApacheにアクセスするには、次のコマンドを実行します127.0.0.1:8080 or 192.168.33.10 or daison.vagrant.me:8080私のホストで

を削除してcommented synced_folder再度Vagrantをリロードすると、すべてのIPアドレスと仮想ホストの結果は次のようになります。アクセスできない--ホストへ

アクセスしてみました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次に、作成したフォルダ私のホストで


また、Vagrant をリロードした後、と同じようにフリーズする"/vagrant/sample"かどうかをテストするために、 synced_folders を に変更してみました。/vagrant/sample/var/www

結果は、Web サーバーにアクセスできるようになりました。もちろん、これは の一部ではありません/var/wwwが、ls内部での使用も/vagrant/sampleフリーズします。

誰か助けてくれるでしょうか? ありがとうございます!

答え1

問題の説明からすると、ゲストにいくつかの Web サイトを作成し、同期フォルダーを設定し、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. これが Web サーバーが「フリーズ」する理由です。

関連情報