我正试图与流浪汉和厨师交手。如果我从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
答案 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。
你可以
/srv/http
default['apache']['docroot_dir']
中使用Custom JSON data(相当于node.js进行厨师独奏运行)以覆盖默认值。注意:确保编辑正确的分布相关块
答案 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
现在我不确定改变这个属性的最佳方法。 (直接在这个文件中?我对此表示怀疑)