gpt4 book ai didi

Apache 无法在 Vagrant 上启动

转载 作者:太空宇宙 更新时间:2023-11-03 16:42:59 25 4
gpt4 key购买 nike

在我的 Vagrant 环境中,我有一个带有默认设置的 LAMP 的 guest Ubuntu Virtualbox。

我的源代码在主机上与我的 Vagrantfile 位于同一文件夹中。所以在 guest Ubuntu 上,我可以像这样访问挂载的 /vagrant 目录中的文件

/vagrant
/mysite
/index.php
/Vagrantfile

现在在我的 Apache 配置中添加一行

Alias /mysite /vagrant/mysite

重新加载配置并重新启动 apache 后,我可以转到 localhost:8558/mysite/index.php 并且它可以工作。

问题是,当我使用 vagrant reload 重新加载 Virtualbox 时,它会在 安装 /vagrant 文件夹之前启动 Apache 服务。所以 Apache 找不到别名目录而无法启动。然后我必须手动启动它

我的问题是 - 有没有办法延迟 Apache 的启动,以便它在安装后启动?

更新:作为解决方法,我将脚本添加到 crontab 中,该脚本在启动后 30 秒启动 apache,如 here 所述.但我想知道是否有更好的解决方案。

最佳答案

虽然 upstart 可能是一个有效的选择,但我在将它与 vagrant 一起使用时遇到了几个问题。我不得不运行几个需要以特权用户身份运行的任务,但我没能成功地与 upstart 一起工作。

从 1.6.0 版(2014 年 5 月 6 日)开始,vagrant 提供了每次都运行特定配置程序的选项,在使用 vagrant up 启动暂停的 VM 之后也是如此。

在你的 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",这将强制 vagrant 始终运行供应器,显然它与任何其他供应系统(如 chef 或 puppet)一样有效。

关于Apache 无法在 Vagrant 上启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21599728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com