2014-02-16 49 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', 
     }, 
    ], 

}