2016-05-28 32 views
0

设置我看到几个帖子和解决方案,在这里,但至今没有人似乎为我工作。我在安装了env插件的Windows 7 64位上使用Vagrant 1.8.1,并在Vagrantfile中启用了config.env.enable。 [更新]我可能做错了什么或错过了什么?PHP无法得到ENV变量由流浪

我想设置一个string=123abc种类的环境变量。 我开始在Vagrantfile直列配置:

config.vm.provision "shell", inline: <<-SHELL 
    echo "export MY_SVR_HOST=192.168.33.10" > /home/vagrant/.profile 
SHELL 

我试图source /home/vagrant/.profile下方(回声)之后,但它没有工作..

然后我尝试添加源行设置文件( bootstrap.sh)

另外(在引导文件中)尝试vagrant ssh && source /home/vagrant/.profile && exit也没有工作。请注意,引导程序文件中有一行可以重新启动apache。

我试图在php.ini文件

; arbitrary, set host IP for Vagrant 
vm_host_ip=192.168.33.10 

这也没有工作设置VAR =价值。我想(在httpd.conf)中加入 SetEnv VMHOSTIP "192.168.33.10"

然后(在一个共享的PHP文件)我基本上希望壳的print_r两个$ _ SERVER和$ _ENV,看看上述任何尝试都能够正常设置环境var,以便PHP可以访问它的值。

是差点工作的唯一的事情,是使用内联提供呼应export命令的初步尝试。

vagrant up --provision 
vagrant ssh 
source /home/vagrant/.profile 

[编辑] 可能是我做错了什么:但是,只有当我做了如下设置环境变量。基于上述情况,有什么我失踪?现在我只需要将文件手动输入到主机服务器中就可以手动输入文件?

在此先感谢。

[编辑]我正在添加内联规定模块,以防日后可能帮助其他人。

# privileged false acts like a sudo, so we can do commands as root. 
config.vm.provision "shell", privileged: false, inline: <<-SHELL 
    echo "export MY_SVR_HOST=192.168.33.10" > /home/vagrant/.profile 

# Add 2 lines (comment and command) to .bashrc if they are not already there. 
if grep -Fxq "# source our profile" /home/vagrant/.bashrc 
then 
    # do nothing since we found the target text. 
    echo "we found the source line we need in .bashrc \n" 
else 
    # Add the lines (comment and command) to .bashrc 
    echo "# source our profile" | tee -a /home/vagrant/.bashrc 
    echo "source /home/vagrant/.profile" | tee -a /home/vagrant/.bashrc 
fi 
SHELL 

这种方法:

  • 是基于公认的答案和其他研究提供了一些有用的技巧。
  • vagrant reload --provisionvagrant destroy, vagrant up

回答

1

完整的周期时,设置可变我会做

config.vm.provision "shell", privileged: false, inline: <<-SHELL 
    echo "export MY_SVR_HOST=192.168.33.10" > /home/vagrant/.profile 
    SHELL 

,因为这样做的.profile文件会被流浪汉用户所拥有 - 在你的情况下,文件归根源可以以问题结束。

如果仍然出现问题,则可以提供块,模仿你手动做什么

config.vm.provision "shell", privileged: false, inline: <<-SHELL 
    echo "export MY_SVR_HOST=192.168.33.10" > /home/vagrant/.profile 
    source /home/vagrant/.profile 
    SHELL 
+0

谢谢我会尝试,并告知,如果它的工作 –

+0

嗨内做source,试了一下,它似乎工作正常,但它没有把变种放入环境中。完成之后,我SSH进入主机并执行命令'echo $ MY_SVR_HOST'并期待值,但它是空的(没有任何内容打印到shell)。我在你的答案结尾添加了来自“如果你仍然有问题”块的2个命令。 –

+0

它的奇怪,它应该只是工作,甚至不需要这个env插件。你打什么?我尝试使用默认的'ubuntu/wily64'方块,然后登录我有'vagrant @ ubuntu:〜$ echo $ MY_SVR_HOST 192.168.33.10' –