Galileo Computing < openbook >
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.
Galileo Computing - Professionelle Buecher. Auch fuer Einsteiger.


Kompendium der Informationstechnik
 von Sascha Kersken
EDV-Grundlagen, Programmierung, Mediengestaltung
Buch: Kompendium der Informationstechnik
gp Kapitel 14 Netzwerkanwendungen
  gp 14.1 Netzwerkkonfiguration unter verschiedenen Betriebssystemen
    gp 14.1.1 Linux
    gp 14.1.2 Mac  OS
    gp 14.1.3 Windows
    gp 14.1.4 TCP/IP-Dienstprogramme
  gp 14.2 Server konfigurieren
    gp 14.2.1 Mac  OS
    gp 14.2.2 Windows
    gp 14.2.3 UNIX/Linux
    gp 14.2.4 Der Webserver Apache
  gp 14.3 Einführung in die Netzwerkprogrammierung
    gp 14.3.1 Die Berkeley Socket API
    gp 14.3.2 Ein einfaches Beispiel
  gp 14.4 Verteilte Anwendungen
    gp 14.4.1 J2EE
    gp 14.4.2 Microsoft .NET
    gp 14.4.3 Web Services
  gp 14.5 Zusammenfassung

gp

Prüfungsfragen zu diesem Kapitel (extern)


Galileo Computing

14.2 Server konfigurieren  downtop

In diesem Abschnitt wird beschrieben, wie Sie Ihren Rechner als Datei- und Druckserver einrichten können, das heißt, wie Dateien, Verzeichnisse und Drucker für den Zugriff über ein Netzwerk freigegeben werden. Unter Mac  OS und Windows wird vor allem die Freigabe von Ressourcen für dasselbe System beschrieben, während unter Linux neben dem allgemeinen UNIX-Netzwerkdateisystem NFS und dem Druckersystem CUPS auch der freie Windows-Server Samba und der Mac-Server netatalk angesprochen werden. Außerdem wird die Installation und Konfiguration des Webservers Apache behandelt.

Grenzen dieses Abschnitts

Besondere Servertypen, etwa für E-Mail und Newsgroups oder FTP, werden hier nicht behandelt, weil sie sehr speziell und komplex sind. Damit Sie sich die Relationen vorstellen können: Allein über den UNIX-Mailserver sendmail gibt es ein (sehr empfehlenswertes) Buch, das über 1200 Seiten umfasst!


Galileo Computing

14.2.1 Mac  OS  downtop

Unter Mac  OS ist es sehr einfach, Dateien und Ordner für andere Benutzer freizugeben. Zunächst müssen Sie grundsätzlich das File Sharing aktivieren. Unter Mac  OS 9 geschieht dies im Kontrollfeld File Sharing, während Mac  OS X in den Systemeinstellungen den allgemeineren Punkt Sharing anbietet. In beiden Fällen müssen Sie zuerst einen eindeutigen Gerätenamen bestimmen. Im Mac  OS 9-Dialog wird hier gleichzeitig der Benutzername festgelegt, sofern Sie keinen Mehrbenutzerbetrieb eingerichtet haben. Die restlichen Einstellungen sind in den beiden Mac  OS-Varianten unterschiedlich.

Apple-Serversysteme

Neben der Möglichkeit der Verzeichnisfreigabe in den normalen Desktop-Varianten von Mac  OS bietet Apple seit einigen Jahren auch vollwertige Server-Programme beziehungsweise -Betriebssysteme an. Wenn viele Benutzer auf einen gemeinsamen Datenbestand zugreifen sollen oder die entsprechenden Dateien sehr groß sind – beispielsweise im Bereich des Desktop Publishings mit seinen enormen Bildauflösungen –, ist die Einrichtung eines separaten Serverrechners mit einem solchen System ratsam. Die klassische, Mac  OS 9-basierte Lösung ist das Programm AppleShareIP; einen moderneren Ansatz bildet das Betriebssystem Mac  OS X Server.

Eine andere Möglichkeit besteht darin, sich mit einem Fremd-Betriebssystem zu helfen, das als zusätzliche Dienstleistung Freigaben für Macs bietet. Besonders in heterogenen Netzen ist diese Lösung sinnvoll. Beispielsweise enthalten alle Microsoft-Server-Betriebssysteme seit Windows NT Server ein AppleTalk-File-Sharing-Modul. Des Weiteren steht unter UNIX der freie Apple-File-Server netatalk zur Verfügung, der weiter unten behandelt wird.

Mac  OS X

Um anderen Mac  OS-Rechnern unter Mac  OS X den Zugriff auf Dateien und Ordner zu gewähren, müssen Sie die Option Personal File Sharing aktivieren. Mac  OS X 10.2 (Jaguar) bietet erstmals auch die Möglichkeit der Dateifreigabe für Windows-Rechner. Konfigurieren Sie zu diesem Zweck die Einstellung Windows File Sharing. Mit Hilfe von Printer Sharing können Sie Drucker freigeben, die an Ihren Rechner angeschlossen sind, während Personal Web Sharing einen kleinen Webserver bietet, der für ein Intranet oder zu Testzwecken geeignet ist.

TCP/IP oder AppleTalk?

Das Personal File Sharing wird unter Mac  OS X standardmäßig über IP ausgeführt. Wenn sich in Ihrem Netzwerk Macs befinden, die eine ältere Mac  OS-Version als 9.1 verwenden, müssen Sie zusätzlich AppleTalk aktivieren (siehe oben). Weitere Einstellungen sind für das Mac File Sharing nicht erforderlich.

Beachten Sie, dass das Windows File Sharing nur Benutzern gewährt werden kann, für die ein lokaler Benutzer-Account existiert: Richten Sie unter Benutzer in den Systemeinstellungen einen neuen Benutzer ein oder öffnen Sie einen vorhandenen zur Bearbeitung. Hier müssen Sie die Option Windows-Benutzer dürfen sich anmelden aktivieren.

Die konkrete Freigabe bestimmter Dateien und Verzeichnisse wird nicht einzeln eingestellt, sondern hängt von lokalen Benutzerrechten ab: Wenn Sie sich über das Netzwerk an einem Mac  OS X-Rechner anmelden, stehen Ihnen genau diejenigen Verzeichnisse zur Verfügung, die Sie zu nutzen berechtigt sind.

Wenn Sie umgekehrt über Mac  OS X auf Freigaben eines entfernten Rechners zugreifen möchten, müssen Sie im Menü des Finders Gehe zu • Mit Server verbinden auswählen. Es erscheint ein Dialog mit einer Übersicht über alle Rechner im lokalen Netz, die als Dateiserver fungieren. Dabei werden Mac  OS- und Windows-Rechner durch unterschiedliche Symbole gekennzeichnet. Wählen Sie einfach den gewünschten Rechner per Doppelklick aus. Anschließend werden Sie gebeten, sich anzumelden. Abhängig vom eingegebenen Benutzernamen verfügen Sie auf dem entfernten Rechner, wie bereits erwähnt, über unterschiedliche Zugriffsrechte.

Mac  OS 9

Im Gegensatz zu Mac  OS X bietet Mac  OS 9 nur zwei Optionen der Freigabe, die im Kontrollfeld File Sharing auf der ersten Registerkarte, Start/Stop, eingestellt werden: File Sharing ist die Datei- und Ordnerfreigabe für andere Macs im Netz, während die Programmverbindung die Möglichkeit bietet, Anwendungsprogramme für die Benutzung durch andere Rechner im Netz freizugeben. Es lohnt sich, die Option Clients greifen auf File Sharing per TCP/IP zu anzukreuzen, weil TCP/IP schneller ist als AppleTalk. Dies funktioniert allerdings nur, wenn alle Macs im Netzwerk unter Mac  OS ab 9.1 oder Mac  OS X laufen; ältere Versionen unterstützen den Zugriff über TCP/IP nicht.

Benutzerverwaltung

Die dritte Registerkarte, Benutzer & Gruppen, ermöglicht die Einrichtung spezieller Netzwerkbenutzer, damit Sie unterschiedliche Freigaben verschiedenen Personenkreisen zugänglich machen können. Ein besonderer Benutzer ist der Gast: Wenn Sie Gästen den Zugriff erlauben, können andere Benutzer ohne Anmeldung durch Benutzernamen und Passwort auf eine entsprechende Freigabe zugreifen.

Um unter Mac  OS 9 ein Verzeichnis für den Netzwerkzugriff freizugeben, müssen Sie es im Finder aktivieren und die Informationen aktivieren: Wählen Sie Ablage • Information • Gemeinsam nutzen oder drücken Sie (Apfel) + (I). Im erscheinenden Dialog müssen Sie zunächst grundsätzlich die Option Gemeinsame Nutzung ermöglichen aktivieren. Anschließend können Sie sich einen Benutzer oder eine Gruppe aussuchen, die auf die Freigabe zugreifen dürfen (automatisch darf dies zunächst nur der Eigentümer). Wenn Sie die Option Jeder aktivieren, dürfen auch Gäste auf das Verzeichnis zugreifen. Mit dem Button Übertragen können Sie schließlich alle untergeordneten Verzeichnisse in die Freigabe einbeziehen.

Wenn Sie mittels Mac  OS 9 auf einen anderen Rechner im Netzwerk zugreifen möchten, können Sie dies über das Programm Auswahl tun, das Sie im Apple-Menü finden. Klicken Sie hier auf das Symbol AppleShare, um die freigegebenen Rechner zu sehen. Um sich an einem der angezeigten Computer anzumelden, müssen Sie in der Regel einen entsprechenden Benutzernamen und ein Kennwort eingeben – es sei denn, auf dem entfernten Rechner ist der Gastzugriff aktiviert. Falls Sie sich mit der Eigentümer-Kennung anmelden, dürfen Sie auf alle Datenträger des freigegebenen Rechners voll zugreifen.

Unter Mac  OS 9 gibt es keine Option für die Freigabe von Druckern. Das gemeinsame Drucken im Netzwerk geschieht in der Regel durch einen AppleTalk-Drucker, der selbst über eine Ethernet-Schnittstelle an das LAN angebunden ist. Wenn Sie dennoch einen lokal angeschlossenen Drucker im Netz freigeben möchten, sind Sie auf eine vom Druckerhersteller gelieferte Druckserver-Anwendung angewiesen.


Galileo Computing

14.2.2 Windows  downtop

Unter Windows müssen zwei Komponenten aktiviert sein, damit die Freigabe von Dateien und Ordnern und der Zugriff darauf funktionieren: Überprüfen Sie in den Netzwerkeinstellungen der entsprechenden Schnittstelle (siehe oben), ob die beiden Dienste Client für Microsoft-Netzwerke sowie Datei- und Druckerfreigabe für Microsoft-Netzwerke vorhanden und angekreuzt sind. Falls nicht, müssen Sie sie über den Button Installieren hinzufügen.

Der Client dient dem Zugriff auf andere Rechner, während die Datei- und Druckerfreigabe die Möglichkeit bietet, anderen Computern beziehungsweise Benutzern Ressourcen zur Verfügung zu stellen. Beide Komponenten besitzen keine erwähnenswerten Optionen, sondern müssen nur installiert sein.

Ordner freigeben

Wenn Sie unter Windows ein Verzeichnis freigeben möchten, klicken Sie es mit der rechten Maustaste an und wählen Sie Freigabe und Sicherheit. Wählen Sie Diesen Ordner freigeben, um den Ordner Benutzern im Netzwerk zur Verfügung zu stellen. Wenn Sie zusätzlich Netzwerkbenutzer dürfen Dateien verändern ankreuzen, erlauben Sie damit den Lesezugriff.

Die Art der Freigabe von Dateien und Ordnern ist einer der wichtigsten Unterschiede zwischen Windows XP Home und Professional: Während die Home-Version die von Windows 9x übernommene Sicherheit auf Freigabeebene (Share Level Security) verwendet, benutzt die Professional-Version automatisch die NT-typische Sicherheit auf Benutzerebene (User Level Security). Bei der Share Level Security können Sie zwar jeder freigegebenen Ressource bei Bedarf ein eigenes Passwort zuweisen, es darf aber im Prinzip jeder Benutzer zugreifen. Die User Level Security wendet dagegen die lokalen Benutzerrechte auch auf das Netzwerk an: Je nach Benutzernamen dürfen Sie dann auf manche Ressourcen nicht zugreifen.

Wenn Sie auf Verzeichnisse anderer Rechner zugreifen möchten, die im Netzwerk freigegeben sind, können Sie die Netzwerkumgebung öffnen, die sich entweder als Icon auf dem Desktop oder im Startmenü befindet. Hier sehen Sie zunächst alle kürzlich verwendeten und automatisch gefundenen Freigaben anderer Rechner. Falls das gesuchte Verzeichnis nicht darunter ist, können Sie auf Arbeitsgruppencomputer anzeigen klicken, um explizit eine Liste der benachbarten Computer zu erhalten und den gewünschten Rechner auszuwählen.

Drucker freigeben

Einen Drucker im Netzwerk freizugeben, ist ebenfalls recht einfach: Öffnen Sie das Modul Drucker und Faxgeräte in der Systemsteuerung. Hier können Sie den gewünschten Drucker mit der rechten Maustaste anklicken und Freigabe wählen. Nun können Sie ankreuzen, dass der Drucker freigegeben werden soll, und einen Freigabenamen festlegen. Unter Zusätzliche Treiber können Sie bestimmen, für welche Betriebssysteme bei einem Zugriff auf den Druckserver automatisch Druckertreiber zur Verfügung gestellt werden sollen.

Wenn Sie auf einen freigegebenen Drucker im Netzwerk zugreifen möchten, geschieht dies ebenfalls über das Programm Drucker und Faxgeräte. Wählen Sie hier zunächst Drucker hinzufügen. In diesem Dialog müssen Sie Netzwerkdrucker auswählen. Auf der nächsten Seite des Dialogs können Sie sich aussuchen, ob der Drucker automatisch gesucht werden soll oder nicht – falls Sie sich für das Suchen entscheiden, sehen Sie nach einiger Zeit eine Liste aller freigegebenen Drucker im LAN und können sich einen aussuchen. Falls ein Druckertreiber für das aktuelle Betriebssystem vorhanden ist, müssen Sie weiter nichts tun. Ansonsten müssen Sie sich möglicherweise selbst auf die Suche nach einem passenden Treiber machen.

Windows-Server

Wenn Sie Windows-Datei- und Druckdienste einem größeren Netzwerk zur Verfügung stellen möchten, sollten Sie die hier beschriebenen Verzeichnis- und Druckerfreigaben nicht auf einem Desktop-Rechner vornehmen, sondern die Verwendung eines eigenen Serverrechners in Betracht ziehen. Im Grunde stehen zwei mögliche Lösungen zur Auswahl: Sie können einen Windows-Server von Microsoft verwenden oder einen UNIX-Rechner (in der Regel unter Linux) mit dem Samba-Server ausstatten. In diesem Unterabschnitt werden kurz die Windows-Server beschrieben; Samba wird weiter unten besprochen.

Active Directory

Microsoft bietet seit etlichen Jahren eigene, spezielle Serverbetriebssysteme an. Die Lösungen, die in Frage kommen, sind Windows 2000 Server und der soeben neu erschienene Windows Server 2003. Der Hauptvorteil, den diese beiden Serversysteme gegenüber einer Linux-Lösung, aber auch gegenüber dem älteren Windows NT Server 4.0 aus dem eigenen Hause bieten, ist Active Directory, ein so genannter Verzeichnisdienst. Verstehen Sie den Begriff nicht falsch: Ihr lokales Dateisystem enthält zwar jede Menge Verzeichnisse, ist aber trotzdem lediglich ein Namensdienst.

Verzeichnisdienste verwalten nämlich nicht nur eine verschachtelte Hierarchie von Objektnamen, wie das eben ein Dateisystem oder auch das Domain Name System des Internets tun, sondern zusätzlich für jedes Objekt eine Reihe von Eigenschaften. Active Directory verwendet DNS für die reine Namensverwaltung, während die Verzeichnisimplementierung selbst auf den freien Verzeichnisdienst LDAP (Lightweight Directory Access Protocol) aufsetzt, das sich in der UNIX-Welt immer weiter verbreitet.

Mit Hilfe von Active Directory können alle Ressourcen eines Windows-Netzwerks zentral verwaltet werden: Informationen über Computer, Drucker, Verzeichnisfreigaben, Benutzer und so weiter. Das System erspart bei größeren Netzwerken sehr viel Verwaltungsaufwand.

Server-Rollen

Neben dem Datei- und Druckdienst erfüllt der Windows Server 2003 eine Reihe weiterer so genannter Server-Rollen. Einige der wichtigsten sind folgende:

gp  Webserver (über den eingebauten Internet Information Server)
gp  DNS-Server
gp  DHCP-Server
gp  Einfacher E-Mail-Server für SMTP und POP3
gp  Terminal-Server – seit Windows 2000 werden die Terminaldienste, die früher von der Firma Citrix geliefert wurden, in die Windows-Server integriert. Mit Hilfe des Terminal-Servers können Sie über das Netzwerk auf dem Windows-Server arbeiten, als säßen Sie davor. Anders als bei den Internetdiensten Telnet oder SSH betrifft dies auch die grafische Oberfläche.
gp  Streaming Media-Server – Server für Windows Media Services
gp  Knoten in einem Server-Cluster – Cluster sind Verbindungen mehrerer Computer zu einem virtuellen Superrechner. In der UNIX-Welt sind Cluster sehr weit verbreitet; sie führen komplexe mathematische, meteorologische oder andere Berechnungen durch oder rendern 3-D-Szenen für Hollywood-Filme. Der Microsoft Cluster Server, der eine ähnliche Funktionalität für einen Verbund von Windows-Rechnern bietet, war früher ein separates Produkt; erst in den Windows Server 2003 (Enterprise Edition) wurde er integriert.

Der Windows Server 2003 wird in vier verschiedenen Varianten angeboten:

gp  Die Standard Edition ist für kleinere und mittlere Firmennetze geeignet; sie unterstützt Rechner mit bis zu zwei Prozessoren und 4 Gigabyte RAM.
gp  Die Enterprise Edition eignet sich für größere Unternehmen und Institutionen: Sie ist mit dem Cluster-Service und den Services for Macintosh ausgestattet. Außerdem gibt es eine spezielle Version für die 64-Bit-Architektur Intel Itanium. Windows Server 2003 Enterprise Edition unterstützt bis zu 8 Prozessoren und 32 Gigabyte RAM, auf Itanium-Rechnern sogar 64 Gigabyte.
gp  Die Datacenter Edition wird nicht als Softwarepaket im Handel verkauft, sondern nur zusammen mit spezieller Serverhardware. Sie benötigt mindestens 8 Prozessoren und arbeitet mit bis zu 32 Gigabyte.
gp  Die Web Edition ist eine abgespeckte Version, die nur die Webdienste enthält, also den Internet Information Server, ASP.NET und so weiter. Diese Variante kann nur mit zwei Prozessoren und bis zu 2 Gigabyte RAM arbeiten.

Andere Windows-Server-Produkte

Andere Serverdienste sind dagegen nicht in die Windows-Server-Systeme integriert, sondern Microsoft vertreibt sie als separate Softwarepakete. Dazu gehören zum Beispiel folgende Produkte:

gp  Microsoft Exchange Server – ein Server für erweiterte Maildienste und Groupware-Funktionen
gp  Microsoft SQL Server – ein verbreiteter Datenbankserver
gp  Systems Management Server – ein spezielles Serverprodukt, das die Fernverwaltung zahlreicher Rechner in großen Netzwerken ermöglicht
gp  BizTalk Server – ein Server für verteilte Enterprise-Anwendungen

Galileo Computing

14.2.3 UNIX/Linux  downtop

Unter UNIX gibt es eine Reihe von Möglichkeiten, Dateisysteme und Drucker im Netzwerk freizugeben. In diesem Unterabschnitt werden die folgenden Systeme kurz vorgestellt: das UNIX-File-Sharing-System NFS, die Druckerumgebung CUPS, Samba als freier Server für Windows-Netzwerke sowie der Mac-Dateiserver netatalk.

Beachten Sie, dass alle hier und in den späteren Abschnitten besprochenen Konfigurationsdateien einfache ASCII-Textdateien sind, die Sie mit einem beliebigen Editor bearbeiten können – beispielsweise mit den in Kapitel 4, Betriebssysteme, vorgestellten UNIX-Texteditoren vi und Emacs. Ärgerlicherweise besitzt jede dieser Dateien über die notwendigen unterschiedlichen Konfigurationsbefehle hinaus auch noch eine andere Syntax, die man sich jeweils aneignen muss. Es steht zu hoffen, dass in den nächsten Jahren immer mehr Konfigurationsdateien im XML-Format standardisiert werden – bei neueren Serverprojekten ist diese Tendenz bereits zu beobachten. XML ist übrigens das Thema des nächsten Kapitels.

NFS

Die wichtigste unter allen gängigen UNIX-Systemen standardisierte Form der Dateifreigabe ist das Network File System (NFS). Wenn Sie auf Ihrem Rechner Dateien über NFS freigeben möchten, müssen Sie zunächst den NFS-Server starten, dessen eigentlicher Name nfsd (Network File System Daemon) lautet. Was bereits weiter oben über die TCP/IP-Konfiguration gesagt wurde, gilt auch für den nfsd und andere Serverdienste: Damit sie beim Booten automatisch gestartet werden, müssen sie in ein Boot-Skript eingetragen werden, das je nach UNIX-Version oder Linux-Distribution unterschiedlich aufgebaut ist. Das Einfachste ist es also auch hier, den Start des NFS-Servers über das Konfigurationsprogramm Ihrer Distribution zu konfigurieren.

NFS-Freigaben

Welche Verzeichnisse Sie für den Netzwerkzugriff freigeben möchten, regelt die Konfigurationsdatei /etc/exports. Ein Eintrag zur Freigabe eines Verzeichnisses besitzt unter Linux das folgende Format:

Pfad Host(Optionen) Host(Optionen)

Wenn Sie also beispielsweise das Verzeichnis /test ohne besondere Einstellungen an die Rechner 192.168.0.3 und 192.168.0.4 in Ihrem lokalen Netzwerk freigeben möchten, lautet die Zeile in der Konfigurationsdatei:

/test 192.168.0.3 192.168.0.4

Beachten Sie, dass die Konfigurationsdatei bei anderen UNIX-Versionen eine andere Syntax besitzt als unter Linux. In Sun Solaris heißt sie sogar anders, nämlich /etc/dfs/dfstab.

Um die für den Export bestimmten Verzeichnisse tatsächlich freizugeben, müssen Sie die folgende Anweisung verwenden, die ebenfalls in einem Start-Skript stehen sollte:

# exportfs -a

Wenn Sie auf ein freigegebenes NFS-Verzeichnis eines anderen Rechners zugreifen möchten, müssen Sie es mit Hilfe des mount-Befehls in Ihren Verzeichnisbaum importieren. Das funktioniert beispielsweise folgendermaßen:

$ mount -t nfs server:/export/pub /pub

Die Option -t nfs gibt den Dateisystemtyp NFS an. Das zu mountende Verzeichnis beginnt mit dem Namen des gewünschten Hosts, der durch einen Doppelpunkt vom entfernten Pfad getrennt wird; die letzte Angabe ist wie gehabt das lokale Verzeichnis, in das der importierte Pfad eingebunden werden soll.

CUPS

Das Drucken unter UNIX und erst recht die Freigabe von Druckern im Netzwerk gehörten in früheren Zeiten zu den kompliziertesten Themen. Seit einigen Jahren steht mit dem Common UNIX Printing System (CUPS) eine sehr praktische Schnittstelle zu vielen verschiedenen Druckern, Druckertreibern und Seitenbeschreibungssprachen zur Verfügung. Es handelt sich um ein GNU-basiertes Open-Source-Projekt, das von der Firma Easy Software Products entwickelt wird.

Systeme wie der BSD-lpd (Line Printer Daemon) oder ein ähnliches Paket aus System V wurden in den 70er-Jahren entworfen und dienen lediglich der zeilenweisen Ausgabe von Text. Für Grafik, PostScript-Druck und so weiter wurden in der Folgezeit zahlreiche proprietäre Lösungen eingeführt. CUPS fasst die Funktionen der klassischen UNIX-Druckumgebungen zusammen und fügt allgemein gültige Lösungen für den Grafikdruck hinzu.

Der CUPS-Scheduler

Die Schaltzentrale von CUPS ist der Scheduler, der die verschiedenen Druckjobs entgegennimmt und in die Warteschlangen (Queues) der verschiedenen Drucker stellt. Der Scheduler ist ein kleiner HTTP-Server und kann Druckjobs deshalb sowohl vom lokalen Rechner als auch aus dem Netzwerk entgegennehmen; er lauscht am TCP-Port 631. Die Druckjobs werden als HTTP-PUT-Anfragen in einem bestimmten Format übermittelt, das als Internet Printing Protocol (IPP) in RFC 2911 und anderen definiert ist. Außerdem kann der Scheduler natürlich als gewöhnlicher Webserver verwendet werden, was zum Beispiel manchmal genutzt wird, um die CUPS-Dokumentation im HTML-Format im Intranet bereitzustellen.

Das wohl bekannte, weit verbreitete HTTP-Protokoll sorgt dafür, dass es sehr leicht ist, CUPS-Clients zu schreiben. Aus diesem Grund verbreiten sie sich schnell in der UNIX-Welt – innerhalb weniger Jahre hat sich CUPS zu einer der führenden Drucklösungen entwickelt.

Wenn an Ihren Rechner ein Drucker angeschlossen ist, der sich über CUPS ansteuern lässt (das System ist mit Treibern für fast alle gängigen Druckermodelle ausgestattet), können Sie den CUPS-Server cupsd starten, um selbst darauf zu drucken oder anderen Benutzern im Netzwerk den Zugriff auf den Drucker zu erlauben. Auch für den Zugriff auf die CUPS-Drucker anderer Hosts müssen Sie den cupsd auf Ihrem eigenen Rechner einrichten.

Die Konfiguration des Daemons steht normalerweise in der Konfigurationsdatei /etc/cups/cupsd.conf. Die wichtigsten Befehle sind Allow und Deny, mit denen Sie den jeweils angegebenen Hosts den Zugriff gewähren beziehungsweise verweigern können. BrowseAllow und BrowseDeny ermöglichen dagegen die Angabe von Hosts, deren Druckerinformationen Sie erhalten oder nicht erhalten möchten.

Samba

Der Dateiserver Samba ermöglicht die Freigabe von Verzeichnissen und Druckern an Windows-Clients. Der Name leitet sich von SMB ab, dem im vorigen Kapitel besprochenen File Sharing-Protokoll der Windows-Betriebssysteme.

Wenn Sie Samba benutzen möchten, muss der Samba-Server smbd laufen. Die Konfiguration des Servers ist in der Datei /etc/smb.conf festgelegt. Sie verfügt über Dutzende möglicher Konfigurationsbefehle, die auf der Manpage man smb.conf dokumentiert sind. Die Datei ähnelt eher einer Windows-ini-Datei als einer typischen UNIX-Konfigurationsdatei: Unter verschiedenen Abschnitten, deren Namen in eckigen Klammern stehen, werden die Konfigurationsbefehle zeilenweise als Name=Wert-Paare gesetzt.

smb.conf

Die folgende kurze smb.conf-Datei ermöglicht beliebigen Windows-Benutzern den anonymen Vollzugriff auf das Verzeichnis /export/pub und auf einen Drucker vom Typ HP LaserJet:

[global]
netbios name  = Server
workgroup     = Workgroup
hosts allow   = 192.168.1.
log file      = /var/log/samba/log.%m
printing      = cups
guest account = nobody
security      = share
 
[pub]
comment     = Serververzeichnis für alle
path        = /export/pub
public      = yes
writable    = yes
printable   = yes
browseable  = yes
create mask = 0775
 
[hplj]
comment      = HP LaserJet
printer name = hplj
writable     = yes
public       = yes
printable    = yes
browseable   = yes

Die Gruppe [global] enthält zunächst die allgemeine Konfiguration: Der netbios name ist der Rechnername, der in der Windows-Netzwerkumgebung angezeigt werden soll. Wenn Sie ihn weglassen, wird stattdessen der TCP/IP-Hostname exportiert. Die workgroup gibt an, in welcher Windows-Netzwerk-Arbeitsgruppe der Samba-Server auftauchen soll. hosts allow enthält eine Liste von IP-Adress-Schemata, die auf den Server zugreifen dürfen – in diesem Beispiel das LAN mit der Adressgruppe 192.168.1.x. Die Angabe %m hinter dem log file gibt an, dass pro Monat eine neue Logdatei angelegt werden soll, die mit der Nummer des laufenden Monats endet. security gibt die weiter oben besprochene Windows-Freigabeebene an: share steht für Share Level Security, während user für User Level Security verwendet wird. Wenn Gäste zugreifen, werden ihre Aktionen unter dem lokalen Benutzerkonto nobody ausgeführt.

Unter dem selbst gewählten Namen [pub] wird das Verzeichnis /export/pub freigegeben. Das Setzen sämtlicher Optionen auf den Wert yes bedeutet, dass der vollständige Zugriff auf das Verzeichnis möglich ist. Die create mask gibt an, mit welchen Benutzerrechten neu angelegte Dateien gespeichert werden sollen. Ähnliche Einstellungen gelten auch für den Drucker.

Der SMB-Client

Die Samba-Distribution enthält neben dem Server übrigens auch noch einen SMB-Client, mit dessen Hilfe Sie umgekehrt auf Windows-Freigaben im Netzwerk zugreifen können. Er wird über den Konsolenbefehl smbclient aufgerufen und bildet eine Art eigene Shell. Zunächst können Sie testen, welche Freigaben ein bestimmter Windows-Host überhaupt zur Verfügung stellt:

$ smbclient -L winbox

Sie erhalten eine Liste aller freigegebenen Ordner auf dem angegebenen Host, in diesem Fall winbox. Angenommen, die Liste enthält eine Freigabe namens PUB vom Typ Disk (Festplatte; eigentlich Verzeichnis). Sie können folgendermaßen auf dieses Verzeichnis zugreifen:

$ smbclient \\\\winbox\\pub

Der NetBIOS-Freigabename des Rechners lautet eigentlich \\winbox\pub. Da die UNIX-Shell den Backslash aber für Escape-Sequenzen einsetzt, müssen Sie je einen durch zwei von ihnen darstellen. Anschließend können Sie eine Reihe verschiedener Befehle eingeben, um Dateioperationen an den Inhalten der Freigabe vorzunehmen – viele von ihnen entsprechen den Windows-Konsolenbefehlen, die in Kapitel 4, Betriebssysteme, erläutert wurden. Der Befehl h listet alle verfügbaren Befehle auf. Mittels quit oder exit können Sie den smbclient beenden.

netatalk

Der netatalk-Server ist eine freie Implementierung von AppleTalk und Apple File Sharing für UNIX-Systeme. Es ist in heterogenen Netzwerken sehr nützlich, dieselben Verzeichnisse mit Samba und netatalk gleichzeitig freizugeben, sodass die Windows- und Mac  OS-Rechner gleichzeitig zugreifen können. netatalk besteht aus drei einzelnen Daemons:

gp  atalkd stellt die grundlegende Unterstützung der AppleTalk-Protokollfamilie bereit und muss laufen, bevor die beiden anderen, eher anwendungsorientierten Daemons eingesetzt werden können.
gp  afpd, der AppleTalk Filing Protocol Daemon, dient der Freigabe von Verzeichnissen an Macs. Er stellt die freigegebenen Verzeichnisse sowohl über AppleTalk als auch über TCP/IP (standardmäßig über den TCP-Port 548) zur Verfügung.
gp  papd ist der Printer Access Protocol Daemon. Er ermöglicht die Freigabe von Druckern im AppleTalk-Netzwerk.

netatalk-Konfiguration

Die Konfiguration des atalkd ist denkbar einfach: In die Datei /etc/atalk/atalkd.conf müssen Sie nur die Namen der Netzwerkschnittstellen eintragen, über die AppleTalk ausgeführt werden soll – in den meisten Fällen genügt die Angabe eth0 in einer einzelnen Zeile.

In die Konfigurationsdatei des afpd – /etc/atalk/afpd.conf müssen Sie in der Regel nichts Besonderes eintragen, wenn der AppleTalk-File Server mit Standardoptionen laufen soll. Die mitgelieferte Beispieldatei enthält ansonsten genügend Kommentare, in denen besondere Einstellungen erläutert werden. Ähnlich sieht es mit der Druckerfreigabedatei papd.conf aus.

Die Datei AppleVolumes.default enthält die Namen der Verzeichnisse, die Sie über netatalk im Netzwerk freigeben möchten. Jeder Eintrag in dieser Datei enthält den Pfad, den Sie freigeben möchten, gefolgt von einem Leerzeichen und dem Namen, unter dem er in der Mac  OS-Auswahl erscheinen soll. Das folgende Beispiel gibt das Verzeichnis /export/pub unter dem Namen Ordner im Netz für alle Benutzer frei:

/export/pub "Ordner im Netz"

Da der Freigabename Leerzeichen enthält, muss er in Anführungszeichen stehen, weil dahinter noch Optionen folgen können. Die wichtigste Option ist allow:, gefolgt von einer durch Kommata (und ohne Leerzeichen) getrennten Liste von Benutzern und Gruppen, die auf den Server zugreifen dürfen. Alternativ können Sie über deny: bestimmte Benutzer ausschließen.

Eine weitere wichtige Konfigurationsdatei ist Applevolumes.system. Sie enthält eine Liste mit Zuordnungen von Dateitypen. In Kapitel 4, Betriebssysteme, wurde bereits erwähnt, dass Mac  OS den Dateityp anhand von Ressourceninformationen ermittelt. Die Liste in dieser Datei enthält in jeder Zeile eine Dateiendung, die einer File Type- und einer Creator-ID zugeordnet wird. Erfreulicherweise sind die meisten gängigen Dateitypen bereits vorhanden.

netatalk legt übrigens in jedem für den Mac-Zugriff freigegebenen Verzeichnis und allen seinen Unterverzeichnissen versteckte Verzeichnisse namens .AppleDouble an, in denen die Resource Fork-Informationen der Mac  OS-Dateien abgelegt werden.


Galileo Computing

14.2.4 Der Webserver Apache  toptop

Für die Bereitstellung von Webseiten im Internet wird ein Webserver (HTTP-Server) benötigt. Der bekannteste und verbreitetste Webserver überhaupt ist das Open-Source-Projekt Apache. Der Name rührt daher, dass es sich ursprünglich um eine durch Patches (Flicken) aufgemotzte Version des alten NCSA-Webservers handelte – »a patchy web server«.

Apache herunterladen und installieren

Von der Website des Apache-Projekts (www.apache.org) oder einem der zahlreichen dort angegebenen Mirror-Server können Sie den Server herunterladen. Wie Sie auf der Site sehen können, ist der HTTP-Server bei weitem nicht das einzige Projekt der Apache Software Foundation. Sie hält außerdem eine Fülle von Software, beispielsweise für die Java-Enterprise-Softwareentwicklung (etwa den Installationsmanager Ant oder die umfangreiche Projektsammlung Jakarta) oder zur XML-Programmierung (der Parser Xerces oder der XSLT-Prozessor Xalan, die im nächsten Kapitel vorgestellt werden) bereit.

Apache-Versionen

Der Apache-Webserver wird aktuell in zwei verschiedenen Versionen angeboten, nämlich 1.3.x und 2.0.x. Dieses Vorgehen ist – im Gegensatz zu den atemlosen Versionssprüngen bei der kommerziellen Software im Windows- oder Mac-Bereich – typisch für UNIX-Software, zumal für Open-Source-Anwendungen: Eine neue Hauptversionsnummer wird immer nur dann vergeben, wenn wesentliche Bereiche der Software neu entwickelt werden. Eine solche Neufassung enthält dann häufig noch nicht alle Funktionen der Vorversion, sodass für eine relativ lange Übergangszeit beide Versionsfolgen weiterentwickelt werden. Bei Apache wird die 1.3.x-Familie inzwischen nicht mehr weiterentwickelt, sondern nur noch mit Bugfixes versorgt. Sie ist aber nach wie vor standardmäßig bei Internet-Hostern installiert, während Sie auf Ihrem eigenen Rechner zu Testzwecken wahrscheinlich eine 2er-Version verwenden werden. In der praktischen Anwendung besteht kein besonders großer Unterschied.

Unter Linux und anderen UNIX-Systemen wird der Apache-Webserver in der Regel vom Distributor mitgeliefert, während Sie ihn unter Windows selbst installieren müssen. Aus diesem Grund wird hier nur Letzteres näher beschrieben. Beachten Sie, dass die Server-Versionen von Windows (Windows 2000 Server und Windows Server 2003) einen eigenen Webserver enthalten, den Microsoft Internet Information Server (IIS). Er funktioniert in Details anders als der Apache und wird auf andere Art und Weise konfiguriert.

Die Windows-Version von Apache wird als Datei mit der Endung .msi heruntergeladen. Es handelt sich um ein Installer-Paket im Windows-Installer-Format. Unter Windows 2000, ME und XP lässt es sich einfach installieren; für ältere Versionen müssen Sie zunächst den Windows-Installer selbst installieren. Für Windows NT 4.0 finden Sie ihn unter www.microsoft.com/downloads/release.asp?ReleaseID=17344 und für Windows 9x unter www.microsoft.com/downloads/release.asp?ReleaseID=17343. Falls Sie Windows 95 benutzen, müssen Sie darüber hinaus das Socket 2 Update von Microsoft herunterladen und installieren; Sie finden es unter www.microsoft.com/windows95/downloads/contents/WUAdminTools/S_WUNetworkingTools/W95Sockets2/Default.asp.

Unter der URL httpd.apache.org/dist/httpd/binaries/win32 finden Sie die diversen vorkompilierten Apache-Download-Dateien für Windows. In dem Verzeichnis befinden sich verschiedene .msi-Dateien. Zum gegenwärtigen Zeitpunkt (Juni 2003) ist die aktuellste Version 2.0.46; sie steht unter dem Namen apache_2.0.46-win32-x86-no_src.msi zum Download bereit.

Apache installieren

Nun können Sie die heruntergeladene Apache-Installationsdatei doppelklicken. Im Großen und Ganzen ist die Installation selbsterklärend; es sind nur wenige Eingaben erforderlich: Unter Network Domain wird der Domainname des Netzwerks eingegeben, in dem sich der Server befindet. Falls Sie ihn zu Testzwecken in Ihrem privaten Netzwerk verwenden, ist es egal, was Sie eingeben. Der Server Name gibt den Namen an, unter dem der Server im Netzwerk erreichbar sein soll – meistens wird www oder www.Domainname eingegeben. Administrator's E-Mail Address ist ebenfalls nur bei Servern wichtig, die öffentlich im Internet verwendet werden: Sie wird auf automatisch erzeugten Fehlermeldungsseiten angezeigt, damit User dem Administrator eine Mail mit einem Hinweis auf den Fehler schicken können.

Als Nächstes wird Ihnen die wichtige Frage gestellt, wohin Apache installiert werden soll. Der automatische Vorschlag (meist C:\Programme\Apache Group\Apache) ist nicht besonders empfehlenswert. Da Sie oftmals Dokumente in den Freigabebereich des Webservers kopieren oder auch die Konfigurationsdateien editieren müssen, sollten Sie Apache nicht so tief in Ihrer Verzeichnishierarchie vergraben – ein Installationsort wie C:\Apache ist geeigneter.

Unter Windows NT, 2000, XP wird Apache standardmäßig als Dienst (Service) installiert, läuft also automatisch im Hintergrund. Im SysTray finden Sie ein kleines Icon, mit dem Sie ihn jederzeit starten und stoppen können. Vor allem nach Konfigurationsänderungen müssen Sie ihn neu starten. Unter Windows 9x wird der Server dagegen als Konsolenanwendung gestartet und kann durch Schließen des betreffenden Konsolenfensters wieder beendet werden. Auf UNIX-Systemen läuft er selbstverständlich als Daemon, und zwar unter dem Namen httpd.

Apache konfigurieren

Nachdem der Apache-Webserver installiert ist und gestartet wurde, können Sie ihn testen. Öffnen Sie dazu einen Browser und geben Sie als Adresse http://localhost beziehungsweise http://127.0.0.1 ein. Falls etwas anderes als eine Apache-Begrüßungsseite erscheint, haben Sie wahrscheinlich einen Proxy-Server eingeschaltet, dessen Startseite Sie sehen. In diesem Fall müssen Sie die Proxy-Konfiguration in Ihren Netzwerkeinstellungen (Mac  OS) oder im Browser (Windows, Linux) überprüfen; es gibt dort in der Regel eine Option, die das Umgehen des Proxys für bestimmte Hosts erlaubt.

httpd.conf

Sämtliche wichtigen Einstellungen für den Apache-Server werden in einer zentralen Konfigurationsdatei namens httpd.conf vorgenommen. Sie befindet sich unter UNIX im Verzeichnis /etc/httpd und unter Windows im Ordner conf innerhalb des Apache-Installationsverzeichnisses. Die Konfigurationsdatei ist sehr umfangreich und komplex, aber die meisten Einstellungen sind für private Testzwecke nicht besonders wichtig; außerdem ist die Datei mit ausführlichen Kommentaren versehen, die die anderen Optionen erklären. Hier werden nur die wichtigsten erläutert, um den Apache-Server mitsamt CGI- und PHP-Unterstützung ans Laufen zu bekommen.

Die Datei httpd.conf besteht grundsätzlich aus zwei Arten von Einträgen: Globale Einstellungen sind einzelne Zeilen, die eine Option in der Form Name Wert enthalten. Andere Konfigurationsdaten beziehen sich auf bestimmte Verzeichnisse und befinden sich deshalb zwischen den Zeilen <Directory Pfadname> und </Directory>.

Die wichtigsten globalen Konfigurationsvariablen sind folgende:

gp  Listen gibt den HTTP-Port an, auf dem der Webserver lauscht. Voreingestellt ist der Standardport 80. Wenn Sie mehrere Webserver auf Ihrem Rechner betreiben oder den getesteten Server vor anderen Benutzern verbergen möchten, können Sie einen anderen Port angeben.
    Beispiel: Listen 8000.
       
gp  DocumentRoot ist der Name des Wurzelverzeichnisses, in dem sich die Startseite befindet. Voreingestellt ist unter Windows das Verzeichnis htdocs im Apache-Ordner; in UNIX-Versionen von Apache wird beispielsweise das Verzeichnis /usr/local/apache/htdocs verwendet.
    Beispiel: DocumentRoot C:/Apache2/htdocs
       
gp  DirectoryIndex gibt mögliche Dateinamen an, die als Start- oder Indexseiten für Verzeichnisse zulässig sind. Voreingestellt ist lediglich index.html. Wenn Sie die Dateiendung .htm für Ihre Dokumente bevorzugen, können Sie index.htm hinzufügen. Falls Sie mit PHP arbeiten, sollte auch index.php hinzukommen. Auch andere Namen als index sind natürlich möglich.
    Wenn der Server eine Anfrage nach einem Verzeichnis erhält, sucht er automatisch nach Dateien mit den angegebenen Namen; die erste, die er findet, liefert er an den Client.
       
    Beispiel: DirectoryIndex index.html index.htm index.php
       
gp  ScriptAlias ist der Pfad eines Verzeichnisses, in dem CGI-Skripts ausgeführt werden. Aus Sicherheitsgründen liegt das Verzeichnis außerhalb des eigentlichen Wurzelverzeichnisses und wird durch diese Direktive dorthin abgebildet. Angegeben wird zuerst der Pfad, unter dem das Verzeichnis exportiert werden soll – meist /cgi-bin –, und dahinter der tatsächliche Pfad im lokalen Dateisystem.
    Beispiel: ScriptAlias /cgi-bin/ C:/Apache2/cgi-bin
       

Verzeichnisdirektiven

    Die Verzeichnisdirektiven enthalten die Optionen und Berechtigungen für das jeweilige Serververzeichnis. Am wichtigsten sind die Optionen für das Wurzelverzeichnis. Eine typische Konfiguration sieht etwa so aus:
       
<Directory "C:/Apache2/htdocs">
   Options Indexes FollowSymLinks ExecCGI
   AllowOverride None
   Order allow,deny
   Allow from localhost
</Directory>

Die Options geben an, welche besonderen Fähigkeiten das Verzeichnis haben soll: Indexes bedeutet, dass automatisch eine Indexseite mit Hyperlinks auf die enthaltenen Dateien und Ordner erzeugt wird, wenn keine Indexseite gefunden wird. FollowSymLinks heißt, dass symbolische Links im Dateisystem aufgelöst werden sollen. ExecCGI besagt, dass CGI-Skripte nicht nur im oben erläuterten ScriptAlias-Verzeichnis ausgeführt werden sollen, sondern in jedem Verzeichnis. Dieses Verhalten ist angebracht, wenn Sie eine Site testen möchten, die auf einem öffentlichen Server eines Hosting-Providers veröffentlicht werden soll – auf solchen Servern gibt es in der Regel kein cgi-bin-Verzeichnis, sondern sie ermöglichen die Ausführung von CGIs in allen Verzeichnissen.

Die Option AllowOverride bestimmt, ob in den Unterverzeichnissen eine Datei namens .htaccess angelegt werden darf, die einzelne Konfigurationseinstellungen überschreibt. Dies wird vor allem für die Verwaltung von Zugriffsrechten verwendet, um einzelne Unterverzeichnisse nur persönlich angemeldeten Benutzern zugänglich zu machen. None bedeutet, dass keine Einstellung durch .htaccess überschrieben werden darf; andere Möglichkeiten sind All für alle oder spezielle Schlüsselwörter für einzelne Optionen.

Die beiden restlichen Zeilen verweigern allen Hosts außer dem lokalen Rechner den Zugriff auf den Webserver – wenn Sie Apache zu Testzwecken auf einem Rechner mit Internetzugang einsetzen, ist diese Konfiguration dringend zu empfehlen.

CGI- und PHP-Konfiguration

Wenn Sie CGI-Skripte in beliebigen Verzeichnissen ausführen möchten, müssen Sie weiter unten die folgende Zeile hinzufügen (halten Sie einfach Ausschau nach entsprechenden Einstellungen):

AddHandler cgi-script .cgi .pl

Außer .cgi und .pl können Sie noch weitere Dateiendungen angeben, wenn Sie vorhaben, CGIs in einer anderen Programmiersprache als Perl zu schreiben.

Wenn Sie PHP-Skripte ausführen möchten, sieht das Ganze etwas komplizierter aus. Sie müssen – wieder an jeweils passenden Stellen in der Datei – die folgenden Zeilen einfügen, wobei statt C:/php jeweils der Pfad der PHP-Installation eingetragen werden muss:

ScriptAlias /php/ "C:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

Sowohl die CGI-Programmierung mit Perl als auch die Entwicklung von PHP-Skripten werden in Kapitel 18, Serverseitig dynamische Websites, behandelt. Die hier gezeigte Apache-Konfiguration ist erforderlich, um die entsprechenden Beispiele ausprobieren zu können. PHP selbst können Sie übrigens unter www.php.net herunterladen; die Installation ist selbsterklärend. Die aktuelle Version ist 4.3.

Wenn es lediglich um den Test von PHP-Skripten mit der Datenbank MySQL (siehe Kapitel 7, Datenbanken) geht, können Sie auch auf die manuelle Einrichtung von Apache und PHP verzichten und stattdessen die Distribution phptriad herunterladen, die Apache, PHP und MySQL in einem komfortablen, vorkonfigurierten Paket enthält. Sie können die Software unter sourceforge.net/projects/phptriad downloaden.






  

Einstieg in PHP 5

Einstieg in Java

C von A bis Z

Einstieg in C++

Einstieg in Linux

Einstieg in XML

Apache 2




Copyright © Galileo Press GmbH 2004
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de