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

标签 php file file-permissions vagrant mkdir

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

配置 vagrant 文件;

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

我已经尝试更改 vagrant 配置文件中的组和所有者,并使用新设置重新加载虚拟机,但似乎没有任何效果。唯一可行的方法是在每次创建文件夹时手动更改每个权限。

最佳答案

你想像这样将“mount_options”添加到你的 config.vm.synced_folder 的末尾(以我这里为例,显然你只需要结束位!):

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

关于php - 具有 laravel 4 应用程序的 Vagrant VM,新文件夹和子目录的 mkdir() 文件权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19538288/

相关文章:

php - 如何从一个 .csv 文件 php 中的 3 个表导出数据

php - Foreach 循环与 while 循环结果

javascript - 删除 json 对象中的字段名称

PHP 条件返回语句?

powershell - 如何使用 PowerShell 取得文件所有权?

linux - 文件权限在docker容器中显示了很多问号

java - 使用 FileUtils.copyFile 复制文件

android - 为什么 ContentResolver 看不到其他应用添加的文件?

c# - 执行文件复制/删除和移动之间的区别

python - 使所有新目录具有 777 权限