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

env*_*sea 4 permissions file-permissions vagrant

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

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

drwxr-xr-x  1 vagrant vagrant 
Run Code Online (Sandbox Code Playgroud)

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

drwxr-xr-x  1 vagrant vagrant
Run Code Online (Sandbox Code Playgroud)

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

所有应用程序都会出现这种情况,例如Laravel的"storage"文件夹,基本上只要程序尝试创建目录.在配置期间尝试强制在Vagrant Up上设置权限也无效:

config.vm.synced_folder "/path/to/writable/folder", "/path/to/writable/folder", :mount_options => ["dmode=777","fmode=666"]
Run Code Online (Sandbox Code Playgroud)

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

小智 18

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

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

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

usermod -a -G vagrant www-data

  • 这不会使流浪汉中的所有文件夹都可写吗?如果想让特定文件夹可写,该怎么办?我想只有/ cache文件夹可写,其余的都是可写的. (2认同)