設置我看到幾個帖子和解決方案,在這裏,但至今沒有人似乎爲我工作。我在安裝了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 --provision
或vagrant destroy, vagrant up
謝謝我會嘗試,並告知,如果它的工作 –
嗨內做
source
,試了一下,它似乎工作正常,但它沒有把變種放入環境中。完成之後,我SSH進入主機並執行命令'echo $ MY_SVR_HOST'並期待值,但它是空的(沒有任何內容打印到shell)。我在你的答案結尾添加了來自「如果你仍然有問題」塊的2個命令。 –它的奇怪,它應該只是工作,甚至不需要這個env插件。你打什麼?我嘗試使用默認的'ubuntu/wily64'方塊,然後登錄我有'vagrant @ ubuntu:〜$ echo $ MY_SVR_HOST 192.168.33.10' –