質問: vagrantでPHPの環境構築の共有フォルダの違いが分かりません。 共有フォルダの設定の違いがハッキリ理解できません。 1、 Linuxコマンドで行うやり方 「ローカル上のinitしたフォルダは、仮想マシン上の/vagrantに該当する。 ローカルのフォルダ(ここでいえばMyVagrant)を仮想マシン上の/var/www/htmlに対応させる。」 ``` rm -fr /var/www/html ln -fs /vagrant /var/www/html ``` 2、共有フォルダの設定はvagrant fileで行う。 共有フォルダ設定に書きを書き込む ``` config.vm.synced_folder "./MyVagrant", "/vagrant/test" ``` この「1」と「2」は何が違うのでしょうか? 両方のやり方で行ってみたものの、「1」はできましたが「2」は上手くできなかったので、何が違うのだろうと思い質問しました。 宜しくお願い致します。
回答: > > この「1」と「2」は何が違うのでしょうか? > > > やっていることと目的が違います。 > > 両方のやり方で行ってみたものの、「1」はできましたが「2」は上手くできなかった > > > 「できた」の定義がわからないですが、そもそも1と2は違うことをしているので「1」はできたが「2」は上手くできなかったということは当たり前です。 ##### 言葉の定義 ゲスト=仮想マシン ホスト=物理マシン(ローカル) ##### 1 **■やっていること** ゲストの/vagrantディレクトリへのショートカットをゲストの/var/wwwディレクトリにhtmlという名前で作る。 ホストという言葉が出てきていないことにお気づきでしょうか。 1はホストとゲストの間で共有フォルダを設定しているわけではありません。 **■目的■** ゲストの/vagrantディレクトリがホスト(デフォルトではinitしたフォルダ)との共有フォルダなので、ホストで編集した内容を即座にゲストのwebサーバーに反映させるため。 ちなみに「/var/www/html」は一般的なwebサーバーのドキュメントルートです。 ##### 2 **■やっていること** ホストの./MyVagrantというフォルダとゲストの/vagrant/testというフォルダを共有フォルダとして設定する。 1と違ってこちらが共有フォルダの設定になります。 **■目的■** デフォルトの共有フォルダ(ホストのinitしたフォルダとゲストの/vagrant)を任意のフォルダに変更するため。 ##### まとめ 色々と混乱されているようなので、そもそもやっていることが違うことと、何のためにそれをしているのか理解しましょう。