Vermittlungsprotokoll

Seite 5: Ich bin viele

Inhaltsverzeichnis

Als erster Webserver lernte Apache für Mac OS X, sich ohne fremde Hilfe via Bonjour zu erkennen zu geben. Das erste Apache-Modul namens mod_rendezvous hat Eric Seidel für Mac OS X entwickelt. Für den Internet Information Server plant die Firma STG ein Bonjour-Plug-in. Auf Linux-Plattformen mit Avahi kann man die Annoncierungstechnik über das Modul mod_dnssd nutzen. Die einzelnen Schritte sind ausführlich beschrieben.

Kaum dokumentiert ist hingegen mod_bonjour, das Apple inzwischen mit Mac OS X 10.4 liefert. Wer Apache auf Mac OS X in Betrieb nimmt, wird zunächst vielleicht überrascht sein, dass er von Haus aus scheinbar keinen Gebrauch vom mitgelieferten Bonjour- Modul macht. Das hat zwei Gründe: Von Haus aus werden nur die Sites von Usern annonciert, die ihre Homepage editiert haben und die Haupt-Site wird gar nicht annonciert. Man kann die Apache-Annoncierung aber schnell einschalten, indem man in der Datei httpd.conf ein Kommentarzeichen entfernt. Fügt man der Datei ein bisschen mehr Text hinzu, kann man sogar mehr als eine Annonce für denselben Apache-Server einrichten. Zunächst öffnet man httpd.conf mit einem Texteditor, etwa pico. Dafür sind Administrator-Rechte erforderlich:

sudo pico /etc/httpd.conf

Nach der Eingabe des Administrator-Passworts stellt man sicher, dass am Ende der Liste der zu ladenden Module das Bonjour-Modul geladen wird – entfernt also gegebenenfalls das Kommentarzeichen:

LoadModule bonjour_module
libexec/httpd/mod_bonjour.so

Weiter unten am Ende des Abschnitts "Reconstruction of the complete module list…" sollte stehen:

AddModule mod_bonjour.c

Das Abschnittsende "VirtualHost" sollte etwa so aussehen; entscheidend sind die Zeilen "RegisterResource …":

<IfModule mod_bonjour.c>
# Nur die Seiten der User, die ihre default home
# page editiert haben, werden annonciert
RegisterUserSite customized-users
#RegisterUserSite all-users
# Die Annoncierung ist in der Grundeinstellung
# abgeschaltet, also Kommentarzeichen löschen
RegisterDefaultSite
# für jede optionale Bonjour-Annonce legt man einen
# zusätzlichen Eintrag an
RegisterResource "Mini-Archiv (dz)" "/~dz/PC/"
RegisterResource "Bonjour-Tools" "/~dz/Bonjour"
</IfModule>

Nach dem Speichern startet man den Apache-Server neu, beispielsweise so:

sudo apachectl restart

Hat alles geklappt, zeigen Browser mit Bonjour-Technik die neuen Annoncen als separate Server im Bereich Bonjour an, nämlich "Mini-Archiv (dz)" und "Bonjour-Tools". Wenig bekannt ist der "Trick", mit dem man einen Mac-OS-X-Server mit mehreren Webservern und zugehörigen IP-Adressen dazu bringt, alle korrekt per Bonjour zu annoncieren.

Zunächst legt man Virtual Hosts an. Die kann man bequem mit Apples Programm Server Admin erstellen; die zugehörigen Einträge legt das Programm im Ordner /etc/httpd/sites ab. Für eine Grundausstattung genügen Einträge in den Feldern Domain Name, IP Adress sowie Web folder (siehe Abbildung "Virtual Host auf Mac OS X"). Im Abschnitt Options kann man zudem je nach Anwendungszweck einen der Einträge Folder Listing, WebDAV, CGI Execution, WebMail oder Server Side Includes eintragen. Den Performance Cache sollte man grundsätzlich einschalten.

Der virtuelle Host ist dann im Prinzip schon erreichbar, und zwar über die zugewiesene IP-Adresse sowie den Port, der in der Datei /etc/httpd/sites/virtual_host_global.conf angegeben ist. Diese Datei legt Server Admin automatisch gemäß den Administrator-Vorgaben an. Im einfachsten Fall stehen darin zwei Zeilen, etwa diese:

Listen 192.168.22.160:16080
NameVirtualHost 192.168.22.160:16080

Anschließend erzeugt man einen Ordner, der die Webseiten des Virtual Host enthalten soll. In diesem Beispiel heißt der Virtual Host "Portier":

sudo mkdir /Library/WebServer/Documents/Portier/
sudo chgrp www /Library/WebServer/Documents/Portier/
sudo chmod 775 /Library/WebServer/Documents/Portier/

Für einen ersten Test kann man zum Beispiel die Datei index.html aus /Library/WebServer/Documents/ dort hinein kopieren:

sudo cp /Library/WebServer/Documents/index.html /Library/WebServer/Documents/Portier/

Die Bonjour-Unterstützung ist auf dem Mac-OS-X-Server 10.4 von Haus aus abgeschaltet. Die erforderlichen Bonjour-Einträge in /etc/httpd.conf sind dieselben wie auf der Client-Version von Mac OS X ("LoadModule …" sowie "AddModule …"). Man muss sie jedoch nicht per Hand eingeben, sondern kann das Bonjour-Modul ebenfalls über das Programm Server Admin einschalten, nämlich im Abschnitt "Modules".

Ganz ohne manuelle Eingriffe geht es freilich nicht; man muss an das Ende der Datei httpd.conf die Bonjour-Parameter für den Virtual Host anfügen:

<IfModule mod_bonjour.c>
# Nur die Seiten der User, die ihre default home pages
# editiert haben werden annonciert
RegisterUserSite customized-users
# RegisterUserSite all-users
# Bonjour-Annoncierung ist in der Voreinstellung
# abgeschaltet, also Kommentarzeichen löschen
RegisterDefaultSite
# und nun die Virtual Hosts bei Bonjour registrieren
RegisterResource "iCals" "/iCals" 16080
RegisterResource "Portier" "/Portier" 16080
</IfModule>

Zu beachten ist, dass das Programm Server Admin nach jedem Speichern der Webserver-Einstellungen auch /etc/httpd.conf neu schreibt und dabei gelegentlich manuelle Einträge wie den obigen überschreibt. (rek)