claim.gif
Linux Magazin Linux User Easy Linux International Linux Community
Erschienen in EasyLinux 10/2004   »   Ausgabe bestellen

Eigenen Web-Server mit XAMPP aufsetzen

Vier starke Typen

von Elisabeth Bauer


Server für das Heimnetz gefällig? Mit praktischen PHP-Programmen wie der CD-Datenbank, auf die alle zugreifen können? XAMPP macht das Server-Aufsetzen zum Kinderspiel.

Bisher war der Weg zum eigenen Web-Server für den Einsteiger mühsam: Handbücher wälzen, zahlreiche Pakete installieren und anschließend so lange an den Konfigurationsdateien pfriemeln, bis die Komponenten reibungslos zusammenarbeiten.

Das Server-Paket XAMPP bringt all das mit, was des Webmasters Herz begehrt: den Web-Server Apache mit PHP- und Perl-Unterstützung, den FTP-Server ProFTPd und die Datenbank MySQL (Abbildung 1). Fertig konfiguriert, mit deutschen Dialogen und speziell auf Anfänger zugeschnitten. Zur Installation genügt ein Shell-Kommando.

Abb. 1: XAMPP ist ein komplettes Server-Paket für den Linux-Rechner zu Hause. Kleine Beispielprogramme wie ein Telefonbuch liefert es mit.

Laden Sie das XAMPP-Paket von [1] herunter und speichern Sie es in Ihrem Home-Verzeichnis. Öffnen Sie ein Terminal und melden sich mit su und Ihrem Root-Passwort als Administrator an. Mit dem Befehl

tar xvfz xampp-linux-1.4.7.tar.gz -C /opt

entpacken Sie das Archiv in das Verzeichnis /opt. Um etwaigen Passanten aus dem Netz erst mal keinen Zugriff auf den Server zu geben, kappen Sie vor dem Start von XAMPP Ihre Internet-Verbindung. Der Befehl

/opt/lampp/lampp start

startet nun alle XAMPP-Dienste: den Apache-Web-Server, die Datenbank MySQL und den FTP-Server ProFTP. Was es genau macht, gibt es in der Konsole aus (Abbildung 2): Auf unseren Testsystemen korrigierte XAMPP beim ersten Start eigenständig die Datei /etc/hosts. Das "L" im Namen des Befehls ist ein Relikt aus alten Zeiten, bevor die Entwickler die Linux-Version LAMPP und die Windows-Version WAMPP unter dem Namen XAMPP zusammengefasst haben.

Abb. 2: Beim ersten Start korrigiert XAMPP die Datei "/etc/hosts" und fährt dann den Web-Server, den FTP-Server und die Datenbank MySQL hoch.

Im Browser greifen Sie auf den Web-Server zu. Geben Sie http://localhost ein, erscheint die Willkommensseite von XAMPP. Ein Klick auf Status verrät Ihnen, welche Dienste laufen.

Schotten dicht

XAMPP will es Einsteigern ermöglichen, ohne große Hürden mit den klassischen Server-Tools zu experimentieren. Daher kommt es mit sehr laxen Sicherheitseinstellungen daher. Jeder kann -- aus dem lokalen Netz oder dem Internet -- auf alle Seiten des Web-Servers, auf das Datenbankadministrations-Tool Phpmyadmin und ohne Passwort auf die Datenbank direkt zugreifen. Rufen Sie im Browser den Sicherheitscheck auf, zeigt XAMPP den aktuellen Status an: in allen Kategorien unsicher. Na prima! Doch das ist mit einem mitgelieferten Skript schnell behoben. Im Terminal rufen Sie als Administrator

/opt/lampp/lampp security

auf. Beantworten Sie alle Fragen, die das Skript Ihnen stellt, mit ja (Abbildung 3). Passwörter müssen Sie jeweils zweimal eingeben. Wenn Sie anschließend die XAMPP-Seiten im Browser aufrufen, erscheint ein Anmeldedialog. Geben Sie als Benutzername lampp und das erste Passwort ein, das Sie im vorigen Dialog vergeben haben. Die Seite Sicherheitscheck sollte nun bei allen Einträgen sicher anzeigen (Abbildung 4).

Abb. 3: Mit dem Sicherheitsskript setzen Sie Passwörter.

Abb. 4: Die Sicherheitsprüfung von XAMPP sagt: "Alles im grünen Bereich". Alle Dienste sind nun passwortgeschützt.

Damit sind die ärgsten Löcher gestopft. Das ist jedoch kein Grund, jetzt alle Vorsicht fahren zu lassen: Jeder Server-Dienst macht ein System prinzipiell verwundbar. Regelmäßig entdecken Leute neue Sicherheitslücken, und mit Portscans klappern Hacker die Adressbereiche der großen Provider auf der Suche nach Opfern ab. Deshalb sollten Sie sich überlegen, für welche Aufgaben Sie XAMPP einsetzen wollen, und entsprechende Maßnahmen ergreifen. Eine Möglichkeit ist der ausschließliche Betrieb im Heimnetz. Wenn Sie mehrere Rechner haben, vereinfachen Sie damit den Datentausch und nutzen Web-Applikationen von jedem Rechner aus. Per Firewall verhindern Sie Zugriffe aus dem Internet auf Ihr XAMPP-System (siehe Kasten "Firewall konfigurieren").

Eine weitere Option besteht darin, XAMPP nur dann zu starten, wenn Sie es brauchen -- wenn Sie beispielsweise Freunden erlauben wollen, große Datenmengen herunterzuladen, die jedes Mail-Postfach sprengen. In dem Fall wählen Sie sich ins Netz ein, starten XAMPP und übermitteln Ihren Freunden per Telefon, Chat oder E-Mail die IP-Adresse, die Ihr Provider Ihnen zugewiesen hat. Mit dem Shell-Kommando /sbin/ifconfig finden Sie diese heraus. Sind alle Downloads fertig, beenden Sie XAMPP mit dem Befehl /opt/lampp/lampp stop (siehe Tabelle "XAMPP-Befehle").

Die dritte Möglichkeit ist der Dauerbetrieb mit voller Anbindung ans Internet. Wer keine feste IP-Adresse hat, kommt dabei um DynDNS kaum herum: Bei diesem -- oft kostenlos angebotenen -- Dienst erhalten Sie einen festen Domain-Namen, dem Sie, wenn Sie sich ins Internet einwählen, Ihre aktuelle IP-Adresse zuweisen. Wer das nicht manuell per Web-Interface erledigen will, findet für Linux spezielle DynDNS-Clients [2]. Regelmäßige Updates und die Lektüre der einschlägigen Sicherheitsforen sind hier Pflicht, will man nicht eines Tages ungebetene Gäste begrüßen. Will oder kann man sich nicht intensiv um seinen Server kümmern, nutzt man für seine Homepage besser eines der klassischen Webhosting-Pakete.

Eigene Inhalte für den Web-Server

Wenn klar ist, wofür Sie Ihren XAMPP-Server einsetzen wollen, kann's losgehen. Starten Sie mit dem Befehl kdesu konqueror den Datei-Manager Konqueror im Systemverwaltungsmodus und navigieren Sie in das Verzeichnis /opt/lampp/htdocs. Das ist das Wurzelverzeichnis des Web-Servers, der Platz für die Inhalte, die Sie präsentieren wollen. Rufen Sie im Browser wie vorher die Adresse localhost oder die IP-Adresse, die Ihr Rechner im Internet oder Heimnetz hat, auf, sucht der Web-Server nach einer Datei index.html in diesem Verzeichnis und liefert diese aus.

Die von XAMPP mitgelieferte index.html leitet automatisch auf die schon bekannten Beispielseiten im Unterverzeichnis xampp weiter. Legen Sie mit einem Text-Editor, zum Beispiel kwrite eine Datei index.html mit folgendem Inhalt an:

<html>
<head></head>
<body>
<h1>Hallo Welt</h1>
<a href="/xampp/">weiter zu XAMPP</a>
</body>
</html>

Kopieren Sie diese nach /opt/lampp/htdocs und überschreiben die vorhandene Datei index.html damit, erhalten Sie ein rudimentäres Inhaltsverzeichnis mit einem Link auf die XAMPP-Seiten. Mit einem HTML-Editor wie Quanta [3], Bluefish [4] oder dem in dieser Ausgabe vorgestellten Mozilla Composer gestalten Sie eine aufwendigere Einstiegsseite.

Mit dem Konqueror im Administratormodus oder als Root mit den Shell-Befehlen cp und mv können Sie nun das Verzeichnis htdocs nach Belieben mit HTML-Dateien, Bildern und Unterordnern füllen. Auch PHP- und Perl-Skripte wie zum Beispiel das Gästebuch, das XAMPP bereits an Bord hat, gehören in dieses Verzeichnis.

Zutaten

XAMPP kann weit mehr als nur Web-Seiten ausliefern. Klicken Sie im Administrations-Interface auf Webalizer, generiert es automatisch eine grafische Auswertung der Zugriffe auf den Web-Server (Abbildung 5). Gleich darüber in der Seitenleiste finden Sie Phpmyadmin, ein grafisches Frontend zur Verwaltung der MySQL-Datenbanken. Kleine Beispielapplikationen fürs Web wie ein Gästebuch und eine Adressdatenbank liegen unter Demos.

Abb. 5: Webalizer zeigt die Zugriffe auf den Web-Server in grafischen Diagrammen -- über den Link "August" kommt man zur Monatsauswertung.

Zusätzlich hat XAMPP den FTP-Server ProFTPD an Bord. Das Sicherheitsskript schützt diesen mit einem Passwort, der Benutzer-Account heißt nobody. Mit ftp://nobody:passwort@ihre-ip-adresse/ greifen Sie im Browser oder per FTP-Programm darauf zu. Wie der Web-Server Apache nutzt auch ProFTPD das Verzeichnis htdocs für die Dateien, die er ausliefert.

Troubleshooting

Programme wie Apache und ProFTPD sind nicht einfach zu konfigurieren, und oft hilft dem Anfänger nur das Handbuch weiter. Einigen gängigen Problemen kommt man jedoch leicht bei. Achten Sie darauf, dass die Dateien und Verzeichnisse keine Leerzeichen oder Umlaute im Namen haben -- das mögen Server gar nicht. Eine weitere häufige Fehlerquelle sind unzureichende Rechte [5]. Wenn Sie beim Aufruf einer Seite die Meldung Permission denied erhalten, überprüfen Sie die Rechte der Datei. Schalten Sie den Konqueror über Ansicht / Anzeigemodus / Detaillierte Verzeichnisansicht auf eine ausführlichere Darstellung um.

Die Spalten Berechtigungen, Eigentümer und Gruppen sind interessant. In der Abbildung "gehört" die Datei index.html beispielsweise dem Benutzer nobody und der Gruppe root. Die Rechte sind auf rwxr-xr-x gesetzt. r steht für Lesen, w für Schreiben und x für Ausführen. Die ersten drei Buchstaben ergeben die Rechte des Eigentümers: nobody darf diese Datei also lesen, schreiben und ausführen, während die Benutzer der Gruppe root (zweites Tripel) und alle anderen (drittes Tripel) sie nur lesen und ausführen, aber nicht ändern dürfen.

Mit dem Befehl chmod oder über den Reiter Berechtigungen im Dialog Eigenschaften im Konqueror ändern Sie falsch gesetzte Rechte, den Eigentümer und die Gruppe (Abbildung 6). Damit der Zugriff klappt, braucht der Nutzer, unter dessen Namen der Server läuft, ausreichende Rechte. Da Sie XAMPP als Root gestartet haben, wäre das normalerweise der Benutzer root. Aus Sicherheitsgründen betreibt XAMPP jedoch Apache, ProFTPD und MySQL unter der Kennung von Benutzer nobody, der unter Linux eingeschränkte Rechte hat. Dateien müssen also für nobody lesbar, Skripte auch ausführbar sein, Schreibrechte braucht er dagegen in der Regel nicht. (eba)

Abb. 6: Im Eigenschaften-Dialog einer Datei oder eines Verzeichnisses setzen Sie die Rechte, wer darauf zugreifen darf.
XAMPP-Befehle
Aufruf: /opt/lampp/lampp <Aktion>
startStartet XAMPP (Apache, MySQL und evtl. weitere)
startapachenur Apache
startsslnur Apache im HTTPS-Modus (SSL)
startmysqlnur MySQL
startftpnur ProFTPD
stopStoppt XAMPP (Apache, MySQL und evtl. weitere)
stopapachenur Apache
stopsslnur Apache im HTPPS-Modus
stopmysqlnur MySQL
stopftpnur ProFTPD
reloadStartet alle Dienste neu
reloadapachenur Apache
reloadmysqlnur MySQL
reloadftpnur ProFTPD
restartStoppe und starte XAMPP
securityÜberprüfe XAMPPs Sicherheit
php5Schaltet um auf PHP5
php4Schaltet um auf PHP4
phpstatusWelches PHP ist aktiv?
backupBackup der Konfiguration, Logs und aller Daten. Mit sh /opt/lampp/backup/xampp-backup-datum.sh spielen Sie ein Backup zurück.
Benutzer-Accounts
DienstBenutzernamePasswort
XAMPP-Web-SeitenlamppÄndern per Sicherheitsskript, relevante Dateien /opt/lampp/lib/xampp.users und /opt/lampp/htdocs/xampp/.htaccess
FTPnobodyÄndern per Sicherheitsskript, gespeichert in /opt/lampp/etc/proftpd.conf
PhpmyadminpmaÄndern per Sicherheitsskript, gespeichert in phpmyadmin/config.inc.php
MysqlrootÄndern per Sicherheitsskript, Achtung: nicht identisch mit dem Linux-User root
Firewall konfigurieren

Unter SuSE Linux 9.1 wählen Sie das Modul Firewall im Reiter Sicherheit und Benutzer in YaST. Im ersten Schritt stellen Sie die externe Schnittstelle ein -- das ist das Gerät, über das Ihr Rechner mit dem Internet verbunden ist, zum Beispiel ppp0 für eine Modem-Verbindung. Klicken Sie auf Weiter, präsentiert YaST einen Dialog, in dem die Dienste aufgelistet werden, die Sie von außen zugänglich machen wollen: Markieren Sie hier die Checkbox HTTP für den Web-Server. Wer auch den FTP-Server vom Internet aus erreichen will, trägt im Experten-Dialog 20 21 ein -- das sind die von FTP standardmäßig verwendeten Ports. Im dritten Dialog sollten Sie die Option Alle laufenden Dienste schützen aktivieren. Damit erlaubt die Firewall nur noch Zugriff auf die Ports, die Sie im vorherigen Dialog freigeschaltet haben.

Fedora-Anwender finden die grafische Firewall-Konfiguration unter Systemeinstellungen / Sicherheitslevel im K-Menü. Nach Eingabe Ihres Administratorpassworts präsentiert Fedora einen einfach gestrickten Dialog. Markieren Sie dort im Kasten Sichere Services die Dienste, die vom Internet aus zugänglich sein sollen, zum Beispiel WWW (HTTP) für den Web-Server und FTP. Im unteren Kasten zeigt Fedora Sichere Geräte an. Wenn Sie zu Hause ein internes Netz haben, können Sie dort das Interface, das den Rechner mit dem Heimnetz verbindet, ankreuzen -- in der Regel ist das der Ethernet-Anschluss eth0.

Benutzer von Mandrake Linux öffnen das Mandrake-Kontrollzentrum über Einstellungen / Configure your computer im K-Menü. Starten Sie den Assistenten zur Firewall-Einrichtung im Reiter Sicherheit. Hier bestimmen Sie, welche Dienste vom Internet aus zugänglich sein sollen: Kreuzen Sie Webserver und -- wenn Sie auch den FTP-Server nutzen wollen -- FTP an. Die Firewall ist anschließend sofort aktiv.

Falls sich der Assistent darüber beschwert, dass das Paket Shorewall fehlt, installieren Sie es über das Paketverwaltungs-Tool RpmDrake nach. Mandrake bietet zwar an, das Paket direkt zu installieren -- das schlug bei uns im Test jedoch fehl.

Infos
[1] XAMPP: http://www.apachefriends.org/download.php?xampp-linux-1.4.7.tar.gz
[2] Frederik Bijlsma: "ddclient", LinuxUser 07/2003, S.66 http://www.linux-user.de/ausgabe/2003/07/066-ootb/
[3] Elisabeth Bauer: "HTML-Seiten gestalten mit Quanta", EasyLinux 05/2004 S. 37ff.
[4] Elisabeth Bauer: "HTML mit dem Editor Bluefish", EasyLinux 08/2003 S. 16ff.
[5] Elisabeth Bauer: "Alles, was recht ist", EasyLinux 09/2003 S. 71ff. http://www.easylinux.de/Artikel/ausgabe/2003/09/071-guru-chmod/

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2010 Linux New Media AG | Last modified: 2007-01-25 17:25

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]