我有一个非常想使用 NFS 在端口 80 上启动的 Vagrant 环境。前者是因为它是 Drupal 并且非标准端口会引起一些胃灼热,而后者纯粹是为了性能。为此,据我所知,我需要使用sudo
. 没问题,sudo vagrant up
是的。
我遇到的问题是应用程序生成文件,大概是因为虚拟机是在 下站起来的sudo
,这些文件归root
主机系统(OS X)所有,所以当应用程序尝试将文件写入服务器时,权限被拒绝。
我更改了我的 Vagrant 文件以将整个项目目录设置为777
. 只是为了披露,以下是我的相关(和非标准)片段Vagrantfile
:
config.vm.network :hostonly, "192.168.33.10"
config.vm.forward_port 80, 80
# config.vm.share_folder( "v-root", "/vagrant", ".", :nfs => (RUBY_PLATFORM =~ /mingw32/).nil?, :extra => 'dmode=777,fmode=777' )
config.vm.share_folder( "v-root", "/vagrant", ".", :extra => 'dmode=777,fmode=777' )
config.vm.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
Vagrant::Config.run do |config|
config.vm.provision :shell, :path => "provision.vm.sh"
end
这是我看到的情况:
- 当我从存储库的干净克隆启动时,没有问题。耶。
- 但是,我确实注意到
/vagrant
,当从 VM 本身查看时, 的内容并没有被赋予完整的权限 (777
)。在这些变化之前就是这种情况。
- 但是,我确实注意到
- 当我在停止虚拟机
后启动时......
- 无法写入生成的文件。
- 中的文件
/vagrant
(同样,当从 VM 中查看时)归dialout
用户所有。这似乎是 NFS 的事情,所以只要我能让第一个项目工作就没有问题。
更新
看起来问题可能是我对 NFS 工作原理的理解。我需要尝试纠正这一点,但如果我只是删除 NFS 组件(现在在上面的片段中进行了评论和替换),事情似乎更有用。仍然很想知道其他人是否/如何处理这个问题。