我从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"]
那么,我需要在虚拟服务器上设置哪些权限才能使其正常工作?
答案 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-homestead和https://www.vagrantup.com/docs/synced-folders/basic_usage.html#modifying-the-owner-group