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

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

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

решение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они довольно умны: они проверяют, внес ли каждый пользователь изменения в 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 возможен.

так что удачи!

решение2

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

это применимо ко всем виртуальным хостам одновременно.

Связанный контент