在 OS X 上的 Apache 上為自訂虛擬主機設定 Bonjour

在 OS X 上的 Apache 上為自訂虛擬主機設定 Bonjour

Bonjour 是一項可愛的技術。我希望我的 mac (Snow Leopard) 上的所有自訂虛擬主機都透過 bonjour 進行廣播。無需單獨啟用每個虛擬主機,執行此操作的最佳方法是什麼?

答案1

我將假設您正在使用內建的 Apache 伺服器,所以...

如果您打開httpd.conf通常可以在最底部看到:

Include /private/etc/apache2/other/*.conf

「other」目錄包含 php.conf 和 bonjour.conf

Bonjour.conf 有一些奇怪之處,其中之一是預設檔案不包含一些可能的選項。據我所知,只有三種可能的選擇:


RegisterDefaultSite

這會廣播主站點,而不是 VHost,並使用電腦名稱(由共用首選項中的「電腦名稱」定義)作為 Bojour 服務標題。


RegisterUserSite

這需要三個選項之一:

<a username>
all-users
customized_users

前兩個是不言自明的,但customized_users相當聰明;它檢查每個使用者是否對~/Sites;中的 index.html 進行了更改如果是,則廣播該使用者的頁面。


RegisterResource

這可能就是您正在尋找的;它接受兩個參數:服務名稱和路徑。

前任:

RegisterResource HelloLan /

我的建議:

我會嘗試在每個 VHost 中放置一個 RegisterResource,儘管我不使用 VHost,所以我自己還沒有嘗試過。

我聽說mod_bonjour預設出貨的產品存在一些問題,多個RegisterResource選項請參見此處:http://deeperdesign.wordpress.com/2010/06/13/apples-mod_bonjour-is-broken-in-snow-leopard-so-i-fixed-it/

有人在上述頁面上留下評論似乎暗示 VHost Bonjour 是可能的。

祝你好運!

答案2

澄清一下,您要為您的電腦註冊備用 A/CNAME 記錄(例如:devsite1.local、devsite2.local...),以便其他電腦可以存取您建立的虛擬主機?沒有簡單的方法可以做到這一點,因為 Bonjour API(與 Avahi 不同)不允許註冊任意記錄名稱。

答案3

在 Debian 上我做了:
a2enmod mod-dnssd
cat /etc/apache2/mods-enabled/mod-dnssd.conf

 # This is the config file for mod_dnssd.<br>
< IfModule mod_dnssd.c><br>
    DNSSDEnable On<br>
< /IfModule>

這同時適用於所有虛擬主機。

相關內容