いつかのために

自作サイトができるまで、メモ置き場として使っているブログ

Vagrantで同期するファイルを設定する

ものすごく色々詰まったのですが、ここでは単純な手順メモとして、やるべきことを書いていきますね。

まずはGuest AdditionsVirtualBoxに入れる必要があるようです。 入れないで同期設定をしようとすると、以下のエラーが出ました。

unknown filesystem type 'vboxsf'

手順はこちらを参考にしました。
VirtualBoxのCentos7にGuestAdditionsをインストールする手順 – Linux学習講座

1.は順調にいったのですが

Guest AdditionsのCDイメージ挿入

ここで失敗しました。

メニューのデバイス⇒Guest AdditionsのCDイメージ挿入をクリック

しても、VirtualBox上でエラーが出ます。
しかもエラー文をコピペできず、すごく調べづらい……。
解決方法は、
一度仮想マシンの電源を落とし、VirtualBoxの画面から
設定⇒ストレージ⇒コントローラー:IDE
の横の+マーク付きCDディスク(光学ドライブの追加)を押し、 空のままにする を選択します。
f:id:sheefelt:20190106170028p:plain

その後、仮想マシンを再起動し、

メニューのデバイス⇒Guest AdditionsのCDイメージ挿入をクリック

をすることで、Guest Additionsを入れられました!

Guest Additionsのインストール

は手順通りで問題なくできました。 CDイメージなどのメディアをCentOSで使う場合、マウントが必要だというのを初めて知りました…。

ここまでがVirtualBox側の設定です。
次はVagrantの設定をします。 Vagrantを入れた直後に設定した、Vagrantfileを見直します。 私はC:\Vagrant\centos7\Vagrantfileに置いてあります。
ローカルにあるので、適当なエディタでconfig.vm.synced_folderに関する記述を追加します。
初期のVagrantfileなら、45行目あたりにコメントアウトされてるかと思います。

  config.vm.synced_folder "laravel", "/var/www/html/laravel",
    type: "rsync",
    rsync__exclude: [
      "/storage",
      "/bootstrap/cache",
      "/vendor/",
    ],
    create: true,
    owner: "vagrant", group: "vagrant"

config.vm.synced_folder "同期したいローカルフォルダのパス(Vagrantfileからの相対パス)", "同期先となる仮想マシン側のパス"で設定ができます。

それ以外はオプションで、

type 同期方法
rsync__exclude 除外したいフォルダ
create 同期先に一致するファイルがなければ新規作成するかどうか
owner, group 同期時の所有者所有グループの名前を何にするか

今回はこれらを設定しました。
そして、コマンドプロンプトから vagrant reload
errorの文字が出ずに、defaultのみで続けば問題なしです!