应用程序无法使用Vagrant创建可写文件夹

时间:2014-10-15 02:56:27

标签: permissions vagrant file-permissions

我从Vagrant的官方Precise64盒子中配置了我自己的基本Vagrant Box。我有一个同步文件夹位于“/ var / www”,公共文件夹位于“/ var / www / public”。

对于“/ var / www”,我的权限是:

drwxr-xr-x  1 vagrant vagrant 

对于“/ var / www / public”,我的权限是:

drwxr-xr-x  1 vagrant vagrant

为了说明我的问题,使用WordPress应用程序,我手动将上传权限设置为777. WordPress能够在上个月内创建一个文件夹,例如“/ var / www / public / wp-content /上传/ 10 /“;但是,它不能上传或写入它刚刚创建的文件夹,除非我再次手动将新创建的“10”文件夹的权限更改为可写。

所有应用程序(例如Laravel的“storage”文件夹)都会发生这种情况,并且基本上只要程序尝试创建目录。在配置期间尝试强制在Vagrant Up上设置权限也无效:

config.vm.synced_folder "/path/to/writable/folder", "/path/to/writable/folder", :mount_options => ["dmode=777","fmode=666"]

那么,我需要在虚拟服务器上设置哪些权限才能使其正常工作?

3 个答案:

答案 0 :(得分:16)

我在Vagrant中使用了WordPress和Laravel,并在Vagrantfile中设置了写权限:

config.vm.synced_folder ".", "/vagrant", :mount_options => ['dmode=774','fmode=775']

并且还将默认的Apache用户添加到vagrant组(我使用shell配置):

usermod -a -G vagrant www-data

答案 1 :(得分:2)

尝试将以下行添加到您的Vagrant文​​件中:

config.vm.synced_folder ".", "/vagrant", :group => "www-data", :mount_options => ['dmode=775','fmode=664']

答案 2 :(得分:0)

要扩展Jesse的答案,在使用homestead(以及Homestead.yaml)时,您可以通过以下方式传递这些选项

folders:
- map: ./
  to: /home/vagrant/code
  options:
    mount_options: ['dmode=777','fmode=777']

基于https://laravel.com/docs/5.8/homestead#configuring-homesteadhttps://www.vagrantup.com/docs/synced-folders/basic_usage.html#modifying-the-owner-group