
Bonjour は素晴らしい技術です。Mac (Snow Leopard) 上のすべてのカスタム vhost を Bonjour 経由でブロードキャストしたいと考えています。すべての vhost を個別に有効にせずにこれを行うための最適な方法は何ですか?
答え1
組み込みの Apache サーバーを使用していると仮定します。
開くと、httpd.conf
通常は一番下に表示されます:
Include /private/etc/apache2/other/*.conf
「other」ディレクトリにはphp.confとbonjour.confの両方が含まれています
Bonjour.conf にはいくつか奇妙な点があります。たとえば、デフォルト ファイルには、使用可能なオプションの一部が含まれていません。私が知る限り、使用可能なオプションは 3 つだけです。
RegisterDefaultSite
これは、VHost ではなくメイン サイトをブロードキャストし、マシンの名前 (共有設定の「コンピューター名」で定義されている) を Bojour サービス タイトルとして使用します。
RegisterUserSite
これには次の 3 つのオプションのいずれかが適用されます。
<a username>
all-users
customized_users
最初の 2 つは説明不要ですが、customized_users
かなり巧妙です。各ユーザーが の index.html に変更を加えたかどうかを確認し~/Sites
、変更を加えた場合はそのユーザーのページがブロードキャストされます。
RegisterResource
おそらくこれがあなたが探しているものです。サービス名とパスの 2 つの引数を受け入れます。
元:
RegisterResource HelloLan /
私のおすすめ:
私は VHost を使用していないので自分では試していませんが、各 VHost に RegisterResource を配置してみます。
デフォルトで出荷される には複数のオプション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>
これはすべての vhost に一度に適用されます。