代码之家  ›  专栏  ›  技术社区  ›  user2910680

带有laravel 4应用程序的Vagrant VM,mkdir()文件权限被拒绝用于新文件夹和子目录

  •  3
  • user2910680  · 技术社区  · 11 年前

    我正在运行一个流浪的虚拟机,并且有一个laravel应用程序,它使用一个名为assets的文件夹来创建一个目录来存储子目录和文件。创建文件夹后,权限仅设置为只读。即使在使用sudo命令更改目录的权限时,错误仍然存在。

    流浪文件的配置;

    Vagrant.configure("2") do |config|
      config.vm.box = "wheezy64"
      config.vm.box_url = "http://puppet-vagrant-boxes.puppetlabs.com/debian-70rc1-x64-vbox4210.box"
    
      config.vm.network "private_network", ip: "192.168.36.49"
    
      config.vm.synced_folder "./", "/var/www", id: "webroot", :group => "www-data", :owner => "vagrant", :nfs => false
    
      config.vm.usable_port_range = (2200..2250)
      config.vm.provider :virtualbox do |virtualbox|
        virtualbox.customize ["modifyvm", :id, "--name", "premierPortal"]
        virtualbox.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
        virtualbox.customize ["modifyvm", :id, "--memory", "1024"]
        virtualbox.customize ["setextradata", :id, "--VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
      end
    
      config.vm.provision :shell, :path => "shell/initial-setup.sh"
      config.vm.provision :shell, :path => "shell/update-puppet.sh"
      config.vm.provision :shell, :path => "shell/librarian-puppet-vagrant.sh"
      config.vm.provision :puppet do |puppet|
        puppet.facter = {
          "ssh_username" => "vagrant"
        }
    
        puppet.manifests_path = "puppet/manifests"
        puppet.options = ["--verbose", "--hiera_config /vagrant/hiera.yaml", "--parser future"]
    end
    
      config.ssh.username = "vagrant"
    
      config.ssh.shell = "bash -l"
    
      config.ssh.keep_alive = true
      config.ssh.forward_agent = false
      config.ssh.forward_x11 = false
      config.vagrant.host = :detect
    end
    

    我尝试过更改流浪者配置文件中的组和所有者,并用新的设置重新加载vm,但似乎什么都不起作用。唯一有效的方法是在每次创建文件夹时手动更改每个权限。

    1 回复  |  直到 10 年前
        1
  •  0
  •   bjohnb    11 年前

    您想像这样将“mount_options”添加到config.vm.synced_folder的末尾(例如,我的这里,您显然只需要末尾!):

    config.vm.synced_folder "deploy", "/var/www", id: "vagrant-root", :mount_options => ["dmode=777","fmode=666"]