I use vagrant and chef to develop my own blog in a virtual machine. To have easy access to the wordpress folder I created a shared folder.
Basically the wordpress folder is on my host and gets mounted as shared folder in /var/www/wordpress in the VM. The configuration is similar to:
config.vm.share_folder "foo", "/guest/path", "/host/path"
My problem is that the ownership in my VM is always vagrant:vagrant
even if I change it on my host. Ownership changes in the VM get ignored.
I cannot use chown
to set the ownership of the upload directory to www-data:www-data
.
It is possible to use chmod
and change the access restrictions to 777
, but this is a really ugly hack.
Here is what I actually want. Is this possible?:
As @StephenKing suggests you can change the options of the whole directory.
The relevant function is not documented but the source tells us:
# File 'lib/vagrant/config/vm.rb', line 53
def share_folder(name, guestpath, hostpath, opts=nil)
@shared_folders[name] = {
:guestpath => guestpath.to_s,
:hostpath => hostpath.to_s,
:create => false,
:owner => nil,
:group => nil,
:nfs => false,
:transient => false,
:extra => nil
}.merge(opts || {})
end
Basically you can set group, owner and acl for the whole folder which is way better than setting everything to world writable on the host. I have not found any method to change the ownership of a nested directory.
Here is a quickfix:
config.vm.share_folder "v-wordpress", "/var/www/wordpress", "/host/path", :owner => "www-data", :group => "www-data"