在我的Vagrant环境中,我有一个带有LAMP默认设置的来宾Ubuntu Virtualbox.
我的源代码在主机上与我的Vagrantfile在同一个文件夹中.所以在客户端Ubuntu上,我可以/vagrant
像这样访问已安装目录中的文件
/vagrant /mysite /index.php /Vagrantfile
现在在我的Apache配置中添加一行
Alias /mysite /vagrant/mysite
重新加载配置并重新启动Apache后,我可以去localhost:8558/mysite/index.php
,它的工作原理.
问题是,当我重新加载Virtualbox时,vagrant reload
它会在安装/vagrant
文件夹之前启动Apache服务.所以Apache找不到别名的dir并且无法启动.我必须手动启动它
我的问题是 - 有没有办法延迟Apache启动,以便它在安装后启动?
更新:作为一种变通方法,我添加脚本描述启动启动后apache的30秒的crontab 这里.但我想知道是否有更好的解决方案.
虽然暴发户可能是一个有效的选择,但我有几个问题与流浪汉一起使用.我不得不运行几个需要作为特权用户运行的任务,我没有设法与新手一起工作.
从版本1.6.0(2014年5月6日)开始,vagrant提供了每次运行特定配置程序的选项,因此在启动暂停的虚拟机后也是如此.
在你的Vagrantfile
,添加:
# a file, eg after-boot.sh config.vm.provision "shell", path: "after-boot.sh", run: "always" # or just inline config.vm.provision "shell", inline: "service apache2 restart", run: "always"
请注意run: "always"
,这将迫使流浪者总是运行供应商,显然它与厨师或木偶等任何其他供应系统一样好.