OS X 上の Apache でカスタム vhost 用に Bonjour を設定する

OS X 上の Apache でカスタム vhost 用に Bonjour を設定する

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に関する問題があると聞きました。こちらをご覧ください:RegisterResourcehttp://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 に一度に適用されます。

関連情報