我的流浪者箱是基于Linux(科学linux)构建的,在供应期间(使用shell脚本),安装了Apache。流浪鸡与鸡蛋:与uid = apache用户共享文件夹
我最近改变了流浪文件(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
始终无间断运行的方式,即使箱子是新的。
你如何安装Apache?一种选择是使用用户vagrant创建同步文件夹,然后在供应脚本/食谱等中更改所有者。 Apache安装完成后。 – pauljm
Apache通过yum安装。文档根目录是一个共享文件夹。我不确定如果我更改此文件夹的所有者会发生什么情况 - >还会更改主机系统中共享文件夹的所有者?但基本上流浪者在安装时强制执行用户,我认为不可行(但没有尝试) – Alex
我不认为更改guest文件夹的所有权会影响主机文件夹的权限(请参阅http://stackoverflow.com/问题/ 13566201 /可-I - 修改 - 的所有权换一个共享文件夹合流浪)。我的假设是,主机文件夹获取用户作为其所有者运行vagrant。如果它确实尝试在来宾和主机之间同步所有者,则会出现严重问题,因为主机拥有与来宾不同的一组用户。我认为在安装apache之后更改所有者将起作用。 – pauljm