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 /
我会尝试在每个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>
这适用于所有的虚拟主机。