Vagrant Chef和Apache2(未找到404)

时间:2013-08-21 22:25:53

标签: chef vagrant

我正试图与流浪汉和厨师交手。如果我从git下载opscode cookbook apache2,请检查最新标记并在我的Vagrantfile中执行以下操作:

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant::Config.run do |config|
  config.vm.box = "precise64"
  config.vm.box_url = "http://files.vagrantup.com/precise64.box"
  config.vm.forward_port 80, 8080

  config.vm.provision :chef_solo do |chef|
    chef.cookbooks_path = "chef/cookbooks"
    chef.add_recipe("apt")
    chef.add_recipe("apache2")
    chef.add_recipe("apache2::mod_rewrite")
  end
end

...我最终安装了一个安装了apache的虚拟机,但是(经过一些挖掘后我发现)/ var / www不是文件记录它是/ etc / apache2 / htdocs

我是否需要在Vagrantfile中添加一行来配置文档根目录?

任何帮助将不胜感激!

Guest Ubuntu 12.04

4 个答案:

答案 0 :(得分:6)

此解决方案适用于Vagrantfile:

Vagrant.configure("2") do |config|

    config.vm.box = "precise32"
    config.vm.box_url = "http://files.vagrantup.com/precise32.box"

    config.vm.network :forwarded_port, host: 8080, guest: 80

    config.vm.provision "chef_solo" do |chef|

        chef.add_recipe "apt" 
        chef.add_recipe "apache2"

        chef.json = { 
            "apache" => {
                "default_site_enabled" => true,
                "docroot_dir" => "/vagrant"
            }
        }

    end

end

这样,每次“流浪”时,您都不需要通过SSH启动网站。

答案 1 :(得分:2)

没有。在Vagrantfile中,您可以配置应运行的虚拟机(例如内存,主机名,端口)和配方(在供应部分中)。但是更改apache文档根目录需要更改apache配方。查看attributes/default.rb并更改所需的路径。

答案 2 :(得分:1)

这取决于您的Linux发行版,因为Debian / Ubuntu DocumentRoot默认为/var/www,而RHEL / CentOS / Oracle / Fedora / SUSE默认为/var/www/html,对于Arch Linux,它默认为{{ 1}}。

假设您使用的是标签1.7.0。

你可以

  1. (更简单)修改attributes/default.rb
  2. 中的/srv/http
  3. default['apache']['docroot_dir']中使用Custom JSON data(相当于node.js进行厨师独奏运行)以覆盖默认值。
  4.   

    注意:确保编辑正确的分布相关块

答案 3 :(得分:0)

我找到了解决方案,它实际上是相当基本的,粗略地看一下流浪汉时的输出就给了答案。

[2013-08-25T14:30:51+00:00] INFO: execute[a2dissite default] sending restart action to service[apache2] (delayed)

默认情况下,apache会禁用默认站点。 ssh进入实例并运行

sudo a2ensite default
sudo service apache2 restart

解决问题。

查看attributes / default.rb我找到了这一行:

  default['apache']['default_site_enabled'] = false

现在我不确定改变这个属性的最佳方法。 (直接在这个文件中?我对此表示怀疑)