Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Vorwort
Über die Autoren
Über dieses Buch
Linux und BSD: Geschichte und Grundbegriffe
1 Der Kernel
2 Die Grundlagen aus Anwendersicht
3 Die Shell
4 Reguläre Ausdrücke
5 Konsolentools
6 Die Editoren
7 Shellskriptprogrammierung
8 Benutzerverwaltung
9 Grundlegende Verwaltungsaufgaben
10 Netzwerkgrundlagen
11 Anwendersoftware für das Netzwerk
12 Netzwerkdienste
13 Mailserver unter Linux
14 LAMP
15 DNS-Server
16 Secure Shell
17 Die grafische Oberfläche
18 Window-Manager und Desktops
19 X11-Programme
20 Multimedia und Spiele
21 Softwareentwicklung
22 Crashkurs in C und Perl
23 Einführung in die Sicherheit
24 Netzwerksicherheit überwachen
25 Prozesse und IPC
26 Bootstrap und Shutdown
27 Dateisysteme
28 Virtualisierung und Emulatoren
A Die Installation
B Lösungen zu den einzelnen Aufgaben
C Kommandoreferenz
D X11-InputDevices
E MBR
F Die Buch-DVDs
G Glossar
H Literatur
Stichwort

Download:
- ZIP, ca. 9,3 MB
Buch bestellen
Ihre Meinung?

Spacer
 <<   zurück
Linux von Johannes Ploetner, Steffen Wendzel
Das umfassende Handbuch
Buch: Linux

Linux
geb., mit 2 DVDs
1.200 S., 39,90 Euro
Galileo Computing
ISBN 978-3-8362-1483-4
Pfeil 14 LAMP
  Pfeil 14.1 Apache
    Pfeil 14.1.1 Den Apache verwalten
  Pfeil 14.2 MySQL
    Pfeil 14.2.1 Administration
    Pfeil 14.2.2 SQL
    Pfeil 14.2.3 APIs
  Pfeil 14.3 PHP
    Pfeil 14.3.1 (X)HTML
    Pfeil 14.3.2 PHP-Support im Apache aktivieren
    Pfeil 14.3.3 PHP lernen
    Pfeil 14.3.4 PHP und MySQL
  Pfeil 14.4 Zusammenfassung
  Pfeil 14.5 Aufgaben

»Wenn das Aug' nicht sehen will, so helfen weder Licht noch Brill'.« Sprichwort

14 LAMP & Co.

In diesem Kapitel wollen wir uns mit einer Modeerscheinung auseinandersetzen. Die ganze Welt spricht von LAMP -- Linux mit Apache, MySQL und PHP[Fn. Manchmal wird das »P« aus LAMP auch als Abkürzung für Perl oder Python interpretiert.]. Mit dieser Open-Source-Kombination kann man einen voll funktionsfähigen Webserver aufsetzen. Die Webseiten können dabei aufgrund der jeweiligen Skriptsprache – in der Regel PHP – dynamisch gestaltet und mit einem Datenbankzugriff auf das MySQL-Backend ausgestattet werden.

Lizenzfreies Setup

Dieses Konzept ist nun in aller Munde, weil bei einem solchen Einsatz ein völlig lizenzkostenfreies System entsteht. Gleichzeitig hat man mit Apache, PHP und MySQL auf Marktführer beziehungsweise Quasistandards gesetzt. In diesem Kapitel zeigen wir Ihnen, wie Sie einen solchen LAMP-Werbserver aufsetzen und im Prinzip mit ihm arbeiten.

Die Installation

Die Grundlage für ein solches Setup ist ein frisches, pures Linux-System ohne allzu viel Schnickschnack. Wie Sie verschiedene Linux-Distributionen installieren, erfahren Sie im Anhang. Vermeiden sollten Sie dabei vor allem die grafische Oberfläche X11 sowie andere Netzwerkdienste wie SMTP- oder POP3-Server.

Bei Serversystemen sollte man sich nämlich auf das Wesentliche beschränken. Wenn man einen SMTP-Dienst auf einem Webserver nur laufen lässt, weil dieser zufällig bei jeder Installation der Lieblingsdistribution mit auf die Platte geschaufelt wird, so tut man höchstens einem Angreifer einen Gefallen – denn alle anderen brauchen den Dienst nicht, nur er hat eine weitere Angriffsmöglichkeit.


Galileo Computing - Zum Seitenanfang

14.1 Apache  Zur nächsten ÜberschriftZur vorigen Überschrift

Nicht nur beim Basteln der eigenen Homepage kann ein Webserver hilfreich sein. In Zeiten von immer billiger werdenden Flatrates wird auch ein eigener Internetserver immer verbreiteter. Ein HTTP-Dienst gehört bei einem solchen Setup eigentlich auch immer dazu.

Als Software empfehlen wir dabei das »A« aus LAMP: den Apache, den im Internet am weitesten verbreiteten Webserver. Aufgrund dieser Verbreitung ist es ziemlich wahrscheinlich, dass Ihre Distribution bereits ein Apache-Paket enthält.

Etwas zur Geschichte

Der Grund für den Erfolg von Apache liegt sicherlich in seiner Geschichte. Unter der Bezeichnung »NCSA httpd« wurde er als einer der ersten Webserver vom National Center for Supercomputing Applications an der University of Illinois entwickelt.

A patchy Server

Irgendwann wurde der Support für das Produkt allerdings eingestellt, und die Administratoren der zahlreichen NCSA-Installationen, die es bis dahin gab, waren auf sich allein gestellt. Schon bald kursierten viele Patches und Erweiterungen. Diese Bestrebungen wurden später im Apache-Projekt koordiniert, dessen Name sich aus dieser Geschichte erklärt: A PAtCHy sErver.

Heute gibt es zwei verschiedene Entwicklungszweige für die Apache-Software. Es gibt den Apache in der Version 2 und die ältere, bewährte 1.3er-Version. Welche Version Sie lieber benutzen, bleibt Ihnen überlassen. Wir haben uns seit der zweiten Auflage dafür entschieden, die Version 2 des Apache zu behandeln.

Die Datei apache2.conf

Konfiguration

Im Folgenden wollen wir den Apache konfigurieren.[Fn. Die Installation haben Sie bestimmt schon ganz selbstständig über das Paketverwaltungstool Ihrer Distribution erledigt, – vielleicht haben Sie sich sogar die Quellen von apache.org gezogen und selbst übersetzt. :-)] Dazu editieren wir die apache2.conf, die sich meistens in /etc/apache2 bzw. /etc/httpd befindet. Die Datei ist relativ groß – kein Wunder bei einer so wichtigen und umfangreichen Software. Falls die Datei bei Ihnen recht klein ist, dann wird es wahrscheinlich mehrere Include-Anweisungen geben, die andere Konfigurationsdateien in diese Datei einbinden (etwa die ports.conf zur Konfiguration der Ports, auf denen der Apache Verbindungen entgegennimmt). Wir werden die wichtigsten Optionen im Folgenden erläutern.

# Standalone-Server auf Port 80
Port            80
PidFile          /var/run/apache2.pid

Listing 14.1  Die Datei apache2.conf (bzw. Teile aus ports.conf)

Unser Apache läuft auf Port 80 und wird nicht durch den inetd gestartet. Der Servername ist selbsterklärend. In die PidFile schreibt der Dienst nach dem Start seine Prozess-ID hinein.

User            www-data
Group           www-data

Listing 14.2  Rechte

Kein root

Mit diesen beiden Anweisungen legen Sie die Rechte fest, unter denen der Prozess laufen soll. Auf keinen Fall sollten hier administrative root-Rechte vergeben werden. Wichtig ist nur, dass der betreffende Benutzer Zugriff auf das DocumentRoot-Verzeichnis mit allen Webseiten hat.

ServerRoot      "/etc/apache2"

Listing 14.3  ServerRoot

In diesem Verzeichnis sucht der Apache weiter nach verschiedenen Konfigurationsdateien. Dieses Verzeichnis kann je nach Distribution auch anders heißen und braucht in der Regel nicht geändert zu werden.

$  ls -l /etc/apache2/mods-enabled/mime.load
          /etc/apache2/mods-enabled/dir.load
lrwxrwxrwx 1 root root 26 Feb 15  2007
       /etc/apache2/mods-enabled/dir.load ->
       ../mods-available/dir.load
lrwxrwxrwx 1 root root 27 Feb 15  2007
       /etc/apache2/mods-enabled/mime.load ->
       ../mods-available/mime.load

Listing 14.4  Module aktivieren

Apache kennt zudem Module, die seine Funktionalitäten erweitern (es gibt beispielsweise ein PHP-Modul). Die verfügbaren installierten Module finden sich dabei meist im Unterverzeichnis mods-available/ des ServerRoot-Verzeichnisses. Um ein Modul zu aktivieren, wird ein symbolischer Link im Verzeichnis mods-enabled auf die entsprechende Datei im Verzeichnis mods-available/ erstellt.

In diesem Fall wurden die zwei absolut unerlässlichen Module mime_module und dir_module eingebunden. Ersteres bringt unserem Webserver bei, unterschiedliche »Dateitypen« zu verstehen und vor allem dem Browser mitzuteilen. Nur so kann dieser wissen, ob er gerade eine Webseite (also HTML-Code) oder ein JPEG-Bild (also Binärdaten) lädt.

index.html finden

Das andere Modul lässt den Webserver nach einem »Standarddokument« suchen, wenn in der URL nichts weiter angegeben wurde. So gelangt man beim Aufruf von example.com auf die Seite example.com/index.html – oder, wenn sie im entsprechenden Verzeichnis vorhanden ist, auf die Seite /index.htm. Im Apache2 kann für jede Site, die auf dem Server läuft, ein eigenes Verzeichnis für die angebotenen Webdateien festgelegt werden. Die Standardseite (»default site«) wird über die Datei sites-available/default konfiguriert.

DocumentRoot /var/www/
  <Directory />
    Options FollowSymLinks
    AllowOverride None
  </Directory>
  <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
    # This directive allows us to have apache2's default start page
    # in /apache2-default/, but still have / go to the right place
    RedirectMatch ^/$ /apache2-default/
  </Directory>

Listing 14.5  Die Datei /etc/apache2/sites-available/default (Ausschnitt)

In diesem Abschnitt legt man nun fest, dass der Root für Webdokumente das Verzeichnis /var/www ist. Lädt man also die http://www.example.com/index.html, so wird die lokale Datei /var/www/index.html an den Client gesendet.

Module

Diese wenigen Direktiven reichen nun bereits aus, um einen einfachen kleinen Webserver mit Apache zu betreiben. Natürlich gibt es noch viel mehr als die beiden hier vorgestellten Module. Teilweise bringen diese dann auch ihre eigenen Schlüsselwörter mit, über die entsprechende Funktionalitäten konfiguriert werden können. Solche häufig vorkommenden Module sind unter anderem:

  • mod_cgi.so
    Mit diesem Modul kann man CGI-Dateien nutzen. Das CGI (Common Gateway Interface) war die erste Möglichkeit für interaktive Webinhalte.
  • libphp5.so
    Mit diesem Modul kann man mit PHP erstellte Webseiten mit dem Apache darstellen. PHP selbst ist, wie viele andere Erweiterungen, nicht Teil der Standard- Apache-Distribution[Fn. Bei diesem umfangreichen Projekt spricht man auch von einer »Distribution«, beachten Sie jedoch den Unterschied zu den Linux-Distributionen.] und muss separat installiert werden. Eine gute Adresse für alles rund um PHP ist dabei www.php.net.

Sicheres Surfen

  • mod_ssl.so
    Mit diesem Modul kann man einen HTTPS-Server aufsetzen und damit über den sogenannten Secure Sockets Layer eine verschlüsselte Verbindung zwischen Client und Server aufbauen.

Je nach Distribution gibt es nun spezielle Pakete, die den Apache mit der ein oder anderen Funktion nachrüsten, sowie Pakete, die einen zum Beispiel bereits für SSL vorkonfigurierten Apache installieren.


Galileo Computing - Zum Seitenanfang

14.1.1 Den Apache verwalten  topZur vorigen Überschrift

Natürlich muss man einen Serverdienst wie den Apache auch zur Laufzeit verwalten können. Im Folgenden wollen wir kurz auf das apache2ctl-Tool und die wichtigsten Logfiles eingehen.

apache2ctl

Mit dem Programm apache2ctl kann man den Apache kontrollieren. Dazu gehört neben den Möglichkeiten des Startens, Neustartens und Stoppens natürlich auch die Option, die Konfigurationsdatei auf Korrektheit hin zu überprüfen:

# apache2ctl configtest
Syntax OK

Listing 14.6  apache2ctl

Konfigurationsdatei prüfen

Ist die apache2.conf fehlerhaft, so wird der Fehler angegeben. Mit dieser Hilfe kann das Problem dann oft recht einfach und schnell behoben werden. Nach einer eventuellen Änderung an der httpd.conf kann der Apache dann mit der restart-Option neu gestartet werden:

# apachectl restart
/usr/sbin/apachectl restart: httpd restarted

Listing 14.7  Apache neu starten

Eine vollständige Liste der von Ihrem apache2ctl-Programm unterstützten Funktionen und Befehle finden Sie in der zugehörigen Manpage.

Die Logdateien

Standardmäßig schreibt der Apache in zwei unterschiedliche Logdateien. Die Datei access.log wird zur Protokollierung einzelner Zugriffe genutzt; in die error.log werden nur Fehler geschrieben.

Kontrolle

Beide Dateien befinden sich oft in einem Unterverzeichnis unter /var/log/(apache2) beziehungsweise unter /usr/local/(apache2/), falls Sie den Apache von Hand aus den Sourcen kompiliert haben.

85.181.56.167 - - [05/Sep/2007:22:35:38 +0200] "GET
 /favicon.ico HTTP/1.1" 200 1406 "-" "Mozilla/5.0
 (Windows; U; Windows NT 5.1; de; rv:1.8.1.5)
 Gecko/20070713 Firefox/2.0.0.5"

Listing 14.8  Eine Zeile aus der access.log-Datei

Hier sehen Sie eine Zeile aus der access.log. Wie Sie bemerken, schickt Ihr Browser sehr viele Informationen über sich und das entsprechende Betriebssystem mit. Außerdem können Sie noch ablesen, dass die Anfrage für die index.html vom Rechner 172.20.2.1 kam.

[Sun Jul 01 08:52:23 2007] [error] [client 66.249.66.180]
       File does not exist: /var/www/robots.txt
[Sun Jul 01 09:15:00 2007] [error] [client 65.55.208.135]
       File does not exist: /var/www/robots.txt

Listing 14.9  Ausschnitt aus der Datei error.log

Hier können Sie feststellen, wofür die error.log außer für die Fehler-Eintragungen sonst noch genutzt wird: für Servernachrichten. Hier im Beispiel sehen Sie die Nachrichten, die der Apache bei unserem Restart hinterlassen hat.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.






 <<   zurück
  Zum Katalog
Zum Katalog: Linux

Linux
Jetzt bestellen


 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchempfehlungen
Zum Katalog: VirtualBox






 VirtualBox


Zum Katalog: Debian GNU/Linux






 Debian GNU/Linux


Zum Katalog: openSUSE 11.2






 openSUSE 11.2


Zum Katalog: Ubuntu GNU/Linux






 Ubuntu GNU/Linux


Zum Katalog: LPIC-1






 LPIC-1


Zum Katalog: UNIX






 UNIX


Zum Katalog: Shell-Programmierung






 Shell-Programmierung


Zum Katalog: Linux-UNIX-Programmierung






 Linux-UNIX-
 Programmierung


Zum Katalog: IT-Handbuch für Fachinformatiker






 IT-Handbuch für
 Fachinformatiker


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Galileo Press 2009
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, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de