Zé *_*ano 14 apache centos vagrant
我正试图用Vagrant建立一个简单的开发环境.基础盒(我创建的)具有带Apache和MySQL的CentOS 6.5 64位.
问题是,重新加载VM(vagrant reload或vagrant halt然后up)后,httpd服务不会在启动时启动.
只有当我运行一个改变的配置脚本DocumentRoot并且仅在我第一次停止机器之后才会出现问题.
httpd在chkconfig2级,3级,4级和5级上
没有写入error_log(on /etc/httpd/logs)的错误.
如果我ssh到机器并手动启动服务,它开始没有问题.
我和其他CentOS盒子有同样的问题(就像chef/centos-6.5vagrantcloud.com上提供的那样),这就是我自己创建一个盒子的原因.
其他服务,如mysql,启动正常,所以这是apache特有的问题.
这是我的Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos64_lamp"
config.vm.box_url = "<url>/centos64_lamp.box"
config.vm.hostname = "machine.dev"
config.vm.network "forwarded_port", guest: 80, host: 8080
config.vm.synced_folder ".", "/vagrant", owner: "root", group: "root"
config.vm.provision :shell, :path => "vagrant_files/bootstrap.sh"
end
Run Code Online (Sandbox Code Playgroud)
我试图创建与所有者/组无业游民文件夹root和apache.两者都有同样的问题(与所有者一样vagrant).
这些是我试过的配置脚本(bootstrap.sh).我希望他们做的唯一事情是将DocumentRoot更改为vagrant文件夹.都没有奏效.
试试1
#!/usr/bin/env bash
sudo rm -rf /var/www/html
sudo ln -fs /vagrant/app/webroot /var/www/html
Run Code Online (Sandbox Code Playgroud)
试试2
#!/usr/bin/env bash
sudo cp /vagrant/vagrant_files/httpd.conf /etc/httpd/conf
sudo service httpd restart
Run Code Online (Sandbox Code Playgroud)
第二次尝试的httpd.conf等于默认值,但DocumentRoot路径除外.第二种选择允许我vagrant up --provision强制重新启动服务,但这应该是一个不必要的步骤.
我还能尝试解决这个问题吗?谢谢.
Zé *_*ano 17
显然问题是由于Apache尝试启动时没有安装vagrant文件夹.虽然我仍然不明白为什么没有抛出错误.
我通过创建一个Upstart脚本(在文件夹上/etc/init)来解决它,以便在vagrant安装其文件夹后启动服务(它发出一个名为的事件vagrant-mounted)
这是我使用的脚本(使用文件名,httpd.conf但我不认为这是必要的).
# start apache on vagrant mounted
start on vagrant-mounted
exec sudo service httpd start
Run Code Online (Sandbox Code Playgroud)
Upstart可以做更多,但这解决了它.
| 归档时间: |
|
| 查看次数: |
9490 次 |
| 最近记录: |