Vagrant パーミッションやアクセス権に関する備忘録

Vagrantで開発する際に、wordpressなどを扱う場合、パーミッションを変更したり、アクセス権を変えたいシチュエーションがあると思います。例えば、wpだとプラグインを導入する時とかですね。
しかし、vagrant上(vagrant ssh)で例えば

chown hoge-user:hoge-user file.txt

とか、

 chmod 777 hoge.txt

ってやっても反映されません。Vagrantの共有フォルダはゲスト側とホスト側との間で、パーミッションを変更を許可していないのです(詳しい理由はわかりません!誰か教えてください!)。
その場合はvagrantfileに直接設定を記述します。
下記に備忘録として残しておきます。
例えば、ownerとgroupを変更し、パーミッションを775に変更する場合はこのようになります。

  config.vm.synced_folder "./vagrant", "/var/www/html/",
    :owner => "owner-user",
    :group => "group-user",
    :mount_options => ["dmode=775,fmode=775"]

ownerとgroupに関してはわかりやすいと思います。パーミッションに関しては、それぞれ詳しく見ていくと、dmodeがディレクトリ、fmodeがファイルのパーミッションを変更する設定になります。
最後に、

vagrant reload

で設定が変更されます。

Vagrant 共有フォルダの備忘録

Vagrantの共有フォルダはデフォルトではvagrant sshでログイン先の/vagrantです。/vagrantに/var/www/htmlがシンボリックリンクしています。
この設定を変更する場合はvagrantfileで変更する必要があります。
以下が設定の該当部分になります。

  config.vm.synced_folder "./", "/vagrant"

⬇︎それぞれこのようになっています。

config.vm.synced_folder "ホスト側ディレクトリ", "ゲスト側ディレクトリ"

従って、例えば、ホスト側ディレクトリをデフォルトから./htdocs/projectに変更したい場合はこのように書けばいいでしょう。

config.vm.synced_folder "./htdocs/project", "/vagrant"

設定が終わったら、必ず、

$ vagrant reload

を実行して初めて共有フォルダのマウントが完了します。
以上、共有ファイルの設定方法でした。簡単ですが、vagrantの予備知識がないと結構はまりますよね、、、。