我的Vagrant VM上有一个NFS共享。它可以工作,但它不能写文件(Symfony2应用程序,需要写入app / cache / prod / sessions)。
如果我使用"非NFS"分享它的作用,但是狗很慢!
在来宾虚拟机中,/var/www/fh-admin
归用户501组root所有,我假设它是我的主机操作系统(OSX)上的用户?
这是我的Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = '2'
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = 'precise64'
config.vm.box_url = 'http://files.vagrantup.com/precise64.box'
#config.vm.network :private_network, ip: '192.168.33.12'
config.vm.network :private_network, ip: "101.0.0.101", :netmask => "255.255.0.0"
config.vm.boot_timeout = 60
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.provision :ansible do |ansible|
ansible.limit = 'all'
ansible.sudo = true
ansible.playbook = '../fh-ansible/fh.yml'
ansible.inventory_path = 'inventory.ini'
ansible.verbose = "v"
end
config.vm.synced_folder '.', '/var/www/fh-admin', :nfs => { :mount_options => ["dmode=777","fmode=666"] }
config.vm.synced_folder '/var/www/surveyor-cordova/assets/www', '/var/www/fhapp', :nfs => { :mount_options => ["dmode=777","fmode=666"] }
config.vm.provider :vmware do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
end
config.vm.provider "vmware_fusion" do |v|
v.vmx["memsize"] = "2048"
v.vmx["numvcpus"] = "2"
end
end
答案 0 :(得分:3)
一种选择是不在NFS共享中存储会话数据。 Benjamin Eberlei在博客文章中详细介绍了如何移动它:http://www.whitewashing.de/2013/08/19/speedup_symfony2_on_vagrant_boxes.html。我想你也可以通过配置独立指定Symfony2会话目录,如果你不想沿着那条路线走下去。
答案 1 :(得分:1)
根据您的要求进行调整:
config.vm.synced_folder "./", "/var/www/fh-admin", id: "unique-id", type: nil,
group: 'www-data', owner: 'www-data', mount_options: ["dmode=775", "fmode=764"]
这假设您正在使用的框中存在组/用户www-data
。
这适用于非NFS,据我所知,NFS不接受这些额外的标志(每个mitchellh)