Настройте Bonjour для собственного виртуального хоста на Apache на OS X

Bonjour - прекрасная технология. Я хотел бы, чтобы все мои собственные vhosts на моем Mac (Snow Leopard) транслировались через Bonjour. Каков наилучший способ сделать это, не включая для каждого vhost отдельно?

3 ответа

Я собираюсь сделать предположение, что вы используете встроенный сервер Apache, так что...

Если вы откроете свой httpd.conf обычно вы можете увидеть в самом низу:

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

"Другой" каталог содержит как php.conf, так и bonjour.conf

Bonjour.conf имеет несколько странностей, хотя, например, файл по умолчанию не включает некоторые из возможных опций. Насколько я знаю, есть только три возможных варианта:


RegisterDefaultSite

При этом транслируется основной сайт, а не VHost, и в качестве названия службы Bojour используется имя компьютера (как определено в поле "Имя компьютера" в настройках общего доступа).


RegisterUserSite

это займет один из трех вариантов:

<a username>
all-users
customized_users

Первые два говорят сами за себя, но customized_users довольно умный; он проверяет, сделал ли каждый пользователь изменения в index.html в ~/Sites; если так, то страница этого пользователя транслируется.


RegisterResource

Это, вероятно, тот, который вы ищете; он принимает два аргумента, имя службы и путь.

Пример:

RegisterResource HelloLan /

Мое предложение:

Я бы попытался разместить RegisterResource в каждом VHost, хотя я не использую VHosts и поэтому сам не пробовал.

Я слышал mod_bonjour поставляется по умолчанию, имеет некоторые проблемы с несколькими RegisterResource Варианты смотрите здесь: http://deeperdesign.wordpress.com/2010/06/13/apples-mod_bonjour-is-broken-in-snow-leopard-so-i-fixed-it/.

Кто-то оставивший комментарий на вышеупомянутой странице, казалось, предположил, что VHost Bonjour возможен.

так удачи!

Просто чтобы уточнить, вы хотите зарегистрировать альтернативные записи A/CNAME (например, devsite1.local, devsite2.local,...) для вашей машины, чтобы другие машины могли получить доступ к созданным вами виртуальным хостам? Нет простого способа сделать это, так как Bonjour API (в отличие от Avahi) не позволяет регистрировать произвольные имена записей.

На 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>

это относится ко всем vhosts одновременно.

Другие вопросы по тегам