2014-02-16 48 views

回答

3

是的,这是可能的:

vhost recipe看出,

# Sample Usage: 
# 
# # Simple vhost definition: 
# apache::vhost { 'site.name.fqdn': 
# port => '80', 
# docroot => '/path/to/docroot', 
# } 

默认虚拟主机文档根目录为界,OS,所以如果你想运行其他某个目录中默认的主机,你应该在Apache的声明中使用default_vhost => False禁用它,然后宣布apache::vhost对象与所需的conf

apache{ 
    default_vhost => false, 
    ... 
} 

apache::vhost{'mydefaulthost': 
    docroot => '/var/www/other', 
    ... 
} 
+0

它会创建一个名为“site.name.fqdn”另一个虚拟主机,但我想改变在这里定义的默认虚拟主机 - 在文件末尾https://github.com/puppetlabs/puppetlabs-apache/blob/master/manifests/init.pp。 –

+0

好吧,所以你应该禁用'default_vhost',然后用你的设置声明一个'apache :: vhost' –

+0

以及如何做到这一点? ) –

2

若y你没有一个默认虚拟主机,它会选择按字母顺序排列的第一个虚拟主机。

这对我的作品(留下了一些认证别名使用比特的片段以及):

class {'apache': 
    default_vhost => false, 
} 
apache::vhost {'mydefault': 
    port => 443, 
    ssl => true, 
    #port => 80, 
    #ssl => false, 
    docroot => '/var/www/html', 

    directories => [ 
     { 
      'path' => '/var/www/html', 
      'provider' => 'files', 
     }, 
     { 
      'path' => '/media/builds', 
      'options' => 'Indexes FollowSymLinks MultiViews', 
      'allowoverride' => 'None', 
      'auth_type' => 'Basic', 
      'auth_name' => 'myrobotaccessonly', 
      'auth_basic_provider' => 'file', 
      'auth_user_file' => '/var/www/.mypasswdfile', 
      'auth_require' => 'user myrobotuser', 
     }, 
    ], 

    aliases => [ 
     { 
      alias => '/builds', 
      path => '/media/builds', 
     }, 
    ], 

}