1

我有以下流浪共享设置:

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

然后网页会创建一个目录来存储“extracts”目录(VM 视图)中 zip 文件中的内容:

drwxr-xr-x 1 vagrant vagrant 68 Jul 23 13:31 ZipExtractDir

尝试从 apache/web 页面在该目录中写入文件时,我从那里获得权限被拒绝。

我在安装 Vagrant V1 之前从未遇到过这个问题,但我的共享是使用 sync_folder 选项的 :nfs=>true 属性完成的。我们现在正在使用通过 puppet 管理的 vagrant 的“全局”开发安装,带有“config.vm.network :public_network”

我是否必须设置 nfs,或者这里还有其他问题以及 apache 将目录创建为“vagrant”而不是“apache”的原因。我假设我们无法写入目录,因为它是使用所有者“vagrant”而不是“apache”创建的,然后当 apache 尝试写入目录时,它会收到权限被拒绝错误。我什至可以使用 DHCP 使用 vagrant 设置 nfs,还是必须拥有静态 IP?

作为参考,apache 设置为使用 apache 用户。我还检查了 /etc/selinux/config 并设置了 SELINUX=disabled

4

1 回答 1

4

我设法通过设置同步文件夹的权限找到解决此问题的方法,因此尽管 vagrant 内部的 user.group 错误,但只要 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']
于 2013-07-25T09:07:00.937 回答