vagrant 首次运行Yii报错

Failed to create directory “/xxx/basic/runtime/logs”: mkdir(): Permission denied
由于使用了主机与虚拟机文件夹共享,无法在虚拟机中修改文件夹用户权限。
需要修改vagrant配置文件Vagrantfile,
指定共享文件夹用户组和用户为www(nginx配置使用的用户组和用户)

config.vm.define “linode” do |ln|
  …
  config.vm.synced_folder
    “xxx”,
    “xxx”,
    owner:”www”, //虚拟机文件所有者(确保有该用户),默认为vagrant
    group:”www”, //虚拟机文件所有组(确保有该用户组),默认为vagrant
    :mount_options => [“dmode=755″,”fmode=644”]
end

Vagrant配置文件Vagrantfile

让虚拟机享受实体机一样的待遇,相当于局域网中的一台独立机器,
采用公有网络配置。

Vagrant.configure(“2”) do |config|
  config.vm.define “vmname” do |vmn|
      vmn.vm.hostname = “vmname”
      vmn.vm.network “public_network”, ip: “局域网中未被占用的ip地址”
      config.ssh.username = “ssh访问用户名”
      config.ssh.password = “ssh访问用户名密码”
      config.vm.synced_folder “本机共享路径”, “虚拟机共享路径”, :mount_options => [“dmode=755″,”fmode=644”]
  end
注:
1 mount_options后面一句是为了将共享文件夹权限设置成755,可以允许phpmyadmin等的访问。
2 虚拟机启动后,首先要将“本机共享路径”下的所有文件映射到”虚拟机共享路径”。这个需要注意第一次启动时,小心”虚拟机共享路径”下文件丢失