目前,我在Drupal-VM(Windows上的Vagrant + Virtual Box)上安装Drupal时遇到了权限问题。我正在与rsync同步,这会导致同步文件和文件夹的所有者和群组vagrant
。由于apache正在与用户www-data
一起运行,因此无法将文件写入sites/default/files
所拥有的公共临时文件夹vagrant:vagrant
中。这就是我尝试将同步文件组更改为www-data
的原因。我该如何做到这一点?
Vagrant 1.9.1
VirtualBox 5.1.14 r112924
Microsoft Windows [版本10.0.14393]
我已经在config.yml
中尝试了以下设置:
vagrant_synced_folders:
- local_path: C:\#\myproject
destination: /var/www/myproject.dev
type: rsync
create: true
options_override:
group: www-data
或
vagrant_synced_folders:
- local_path: C:\#\myproject
destination: /var/www/myproject.dev
type: rsync
create: true
group: www-data
这些不会在vagrant reload
之后生效。当我检查.vagrant/machines/mydrupalvmbox/virtualbox/syncedfolders
group
仍然是vagrant
时。更改此临时文件中的组并执行vagrant rsync
会生成rsynced文件和目录的正确组。但在vagrant reload
之后,这些临时设置消失了,而组vagrant
又回来了。
我还尝试通过rsync_args
更改群组但没有成功:
vagrant_synced_folders:
- local_path: C:\#\myproject
destination: /var/www/myproject.dev
type: rsync
create: true
options_override:
rsync__args: [
"--verbose", "--archive", "--delete",
"--chmod=gu=rwX,o=rX",
"--group", # required for the following command
"--groupmap=*:www-data"
]
我收到错误:Error: rsync: --groupmap=*:www-data: unknown option
。
那么正确的设置是什么?
答案 0 :(得分:1)
您正在运行哪个版本的rsync
?
版本3.1.0中包含groupmap
选项(请参阅https://rsync.samba.org/ftp/rsync/src/rsync-3.1.0-NEWS)
- Added the --usermap/--groupmap/--chown options for manipulating file ownership during the copy.
升级您的rsync版本(如果您正在使用cygwing,升级cygwin / rsync)并确保您获得最新版本
rsync --version
答案 1 :(得分:0)
在Drupal VM中,您必须在rsync__group
内使用options_override
:
vagrant_synced_folders:
- local_path: C:\#\myproject
// [...]
options_override:
rsync__group: www-data
请参阅相关问题:https://github.com/geerlingguy/drupal-vm/issues/1199
这也可能适用于其他流浪者盒子。