我有以下流浪汉分享设置:
config.vm.synced_folder "~/web", "/opt/subversion/web"
我的一个页面,打开zip文件并将它们提取到一个目录,让我们说:
/opt/subversion/web/extracts/
当我们从VM内部查看目录时,它看起来像这样:
drwxrwxrwx 1 vagrant vagrant 136 Jul 23 13:31 extracts
当我们查看主机上的目录时,它看起来像这样:
drwxrwxrwx 4 garth staff 136 Jul 23 15:31 extracts
然后,网页创建一个目录,用于将内容存储在zip文件的“提取”中。目录(VM View):
drwxr-xr-x 1 vagrant vagrant 68 Jul 23 13:31 ZipExtractDir
从那里我尝试从apache / web页面写入该目录中的文件时被拒绝。
我的Vagrant V1安装之前从未遇到过这个问题,但我的共享是使用sync_folder选项的:nfs => true属性完成的。我们现在正在使用"全球"通过puppet与'#34; config.vm.network:public_network"
进行的恶作剧安装我是否必须设置nfs,或者是否存在其他错误,以及为什么apache创建目录为" vagrant"而不是" apache"。我假设我们无法写入目录,因为它是由所有者" vagrant"创建的。而不是" apache"然后当apache尝试写入目录时,它会收到权限被拒绝错误。我甚至可以使用DHCP设置nfs与vagrant,还是我必须拥有静态IP?
供参考,apache设置为使用apache用户。我还检查了/ etc / selinux / config并设置了SELINUX = disabled
答案 0 :(得分:4)
我设法通过设置synced文件夹的权限来找到解决方法,所以虽然user.group在vagrant中是错误的,但它不是世界末日,只要apache用户可以写入目录
config.vm.synced_folder "~/web", "/opt/subversion/web", :extra => 'dmode=777,fmode=777'
修改强>
对于Vagrant 1.3.0+使用:mount_options而不是:extra。
config.vm.synced_folder "~/web", "/opt/subversion/web", :mount_options => ['dmode=777,fmode=777']