在OS X上为ApacheconfigurationBonjour自定义虚拟主机

Bonjour是一个可爱的技术。 我想我所有的我的自定义虚拟主机(雪豹)通过bonjour广播。 什么是最好的方法来做到这一点,而不必分别启用每个虚拟主机?

我将假设你正在使用内置的Apache服务器,所以…

如果你打开你的httpd.conf你通常可以在最下面看到:

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

“其他”目录包含php.conf和bonjour.conf

Bonjour.conf有一些奇怪的,但是,默认文件不包括一些可能的选项。 据我所知,只有三种可能的select:


 RegisterDefaultSite 

这会广播主站点,而不是VHost,并使用机器名称(如共享首选项中的“计算机名称”所定义)作为Bojour服务标题。


 RegisterUserSite 

这需要三个选项之一:

 <a username> all-users customized_users 

前两个是自我解释,但是customized_users相当聪明; 它会检查每个用户是否对~/Sites的index.html进行了更改; 如果是的话,该用户的页面被广播。


 RegisterResource 

这可能是你正在寻找的那个; 它接受两个参数,一个服务名称和一个path。

例如:

 RegisterResource HelloLan / 

我的build议:

我会尝试在每个VHost寄存器资源,虽然我不使用VHosts,所以我没有尝试过自己。

我听说默认发货的mod_bonjour有多个RegisterResource选项,请看这里的一些问题: http : mod_bonjour -so-i-fixed-it / 。

有人对上述页面发表评论,似乎表明VHost Bonjour是可能的。

所以祝你好运!

只是为了澄清,你想为你的机器注册备选的A / CNAMElogging(例如:devsite1.local,devsite2.local,…),以便其他机器可以访问你创build的虚拟主机? 由于Bonjour API(不像Avahi)不允许任意logging名称被注册,所以没有简单的方法来做到这一点。

在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> 

这适用于所有的虚拟主机。