我的Vagrant box是从基本linux(科学linux)构建的,在配置(使用shell脚本)过程中,安装了Apache.

我最近将Vagrant文件(v2)更改为:

config.vm.synced_folder "public", "/var/www/sites.d/example.com",
   :owner => "apache", :group => "apache"

如果盒子已经配置好,并且刚刚重新启动,那么这个功能就可以正常工作.

现在,vagrant destroy && vagrant up次之后,我得到了错误:

mount -t vboxsf -o uid=`id -u apache`,gid=`id -g apache` 
   /var/www/sites.d/example.com /var/www/sites.d/example.com
id: apache: User does not exist

这一点很清楚——在最初的运行中,apache尚未安装.

一个难看的解决方法当然是用synced_folder条注释掉的内容进行基本的资源调配,然后重新启动.

有什么干净的方法可以解决这个问题吗?尤其是在这样一种情况下,vagrant up总是不间断地运行,即使盒子是新的.

推荐答案

Ryan Sechrest等于dealt extensively with this problem.

提出的解决方案之一是:

将目录权限设置为777,文件权限设置为666

config.vm.synced_folder "/Users/ryansechrest/Projects/Sites", 
  "/var/www/domains", mount_options: ["dmode=777", "fmode=666"]

Linux相关问答推荐

空字符串和空文件的区别

为什么硬编码的阿拉伯字母与Unicode代码点不具有相同的值

我需要从 Ubuntu 中删除 .txt 文件中以白色间距分隔的行的白色间距

在 cURL 中使用的确切位置将字节分成一些范围部分

如何从核心转储中获取线程名称?

使用 AWK 过滤 Linux 输出

awk/sed 命令仅在模式 2 匹配时打印模式 1

如何在Linux中将文件的特定行号中的数字乘以2(双)?

如何使用换行符或制表符或空格 grep 多行字符串

获取变量中的当前路径并使用它

Linux 应用程序分析

如何在非阻塞套接字上处理 OpenSSL SSL_ERROR_WANT_READ / WANT_WRITE

模拟器在内核映像文件中找不到Linux 版本字符串

你如何在 C 中的 Linux 上进行非阻塞控制台 I/O?

为什么 mmap() 比顺序 IO 快?

Ant 找不到 javac,在 Ubuntu 上不会设置 JAVA_HOME

os.walk 没有隐藏文件夹

如何让我的 Golang Web 服务器在后台运行?

如何在我的终端中编辑文本文件

在linux中将制表符分隔的文件转换为csv的最快方法