46.2. Installation

Apache läuft in SUSE Linux „Out of the Box“, d.h. in der voreingestellten Standardkonfiguration. Wenn Sie die Anleitungen in diesem Kapitel befolgen, verfügen Sie innerhalb kürzester Zeit über einen funktionsfähigen Apache-Webserver. Zur Installation und Konfiguration von Apache müssen Sie root-Benutzer sein.

46.2.1. Installieren von Apache mit YaST

Das Apache2-Paket für SUSE Linux weicht geringfügig im Dateisystem- und Anwendungslayout von den standardmäßigen Softwarepaketen ab, die auf der Apache-Website (http://httpd.apache.org) verfügbar sind. Im folgenden Abschnitt werden die Installation des Apache2-Pakets für SUSE Linux sowie eventuelle Variationen detailliert beschrieben.

Gehen Sie wie folgt vor, um einen einfachen Webserver zu installieren:

Prozedur 46.1. Schnellinstallation

  1. Starten Sie YaST im GUI- oder Befehlszeilen-Modus.

  2. Wählen Sie Netzwerkdienste+HTTP-Server.

  3. Klicken Sie auf Weiter, um die Installation der Pakete apache2 und apache2-prefork zu bestätigen.

  4. Nach Beendigung der Installation wird der Apache-Konfigurationsassistent angezeigt und Sie können mit der Einrichtung des Webservers beginnen.

Der Nachteil bei dieser Vorgehensweise besteht darin, dass die PHP- und Datenbankunterstützung fehlt. Gehen Sie wie folgt vor, um einen Webserver mit PHP- und Datenbankunterstützung zu installieren:

Prozedur 46.2. Installieren eines einfachen Webservers

  1. Starten Sie YaST im GUI- oder Befehlszeilen-Modus.

  2. Wählen Sie Software+Software installieren oder löschen.

  3. Wählen Sie Selektionen unter Filter und markieren Sie Einfacher Webserver mit Apache2.

  4. Klicken Sie auf OK.

  5. Bestätigen Sie die Installation der abhängigen Pakete, um den SUSE Linux Apache2-Installationsvorgang abzuschließen.

Für erfahrene Benutzer bietet SUSE Linux die benutzerdefinierte Auswahl der Pakete. Gehen Sie wie folgt vor, um eine benutzerdefinierte Installation eines Webservers auszuführen:

Prozedur 46.3. Installieren des Standard-Apache-RPM mit YaST

  1. Starten Sie YaST im GUI- oder Befehlszeilen-Modus. Wählen Sie Software+Software installieren oder löschen.

  2. Wählen Sie Suche unter Filter und geben Sie apache2 in das Feld Suche ein.

  3. Wählen Sie apache2 zur Installation aus.

  4. Wählen Sie in Schritt 2 und 3 die Module aus. Siehe Abschnitt 46.5, „Apache-Module“.

  5. Klicken Sie nach der Auswahl auf Übernehmen.

  6. Anschließend werden Sie aufgefordert, eine der Abhängigkeiten für das erforderliche apache2-MPM-Paket auszuwählen: apache2-prefork oder apache2-worker. In Abschnitt 46.2.2, „Multiprocessing-Module“ werden die Unterschiede zwischen den beiden Paketen erläutert. Wenn Sie sich nicht sicher sind, wählen Sie das Standardpaket für Unix-basierte Betriebssysteme, apache2-prefork, und klicken Sie dann auf OK.

  7. Bestätigen Sie die Installation der abhängigen Pakete, um den SUSE Linux Apache2-Installationsvorgang abzuschließen.

[Note]Starten eines Webservers

Der Webserver wird nicht automatisch durch die Installation von Apache gestartet. Informationen über das Starten und Herunterfahren von Apache finden Sie in Abschnitt 46.3.3, „Aktivieren, Starten und Beenden von Apache“.

46.2.2. Multiprocessing-Module

Wie im Abschnitt Installieren des Standard-Apache-RPM mit YaST erwähnt, bietet SUSE Linux zwei Multiprocessing-Module (MPMs) für Apache. MPMs sind dafür verantwortlich, Anforderungen an den Webserver anzunehmen und zu verarbeiten, und stellen damit das Kernstück der Webserver-Software dar.

46.2.2.1. Prefork-MPM

Das Prefork-MPM implementiert einen Prefork-Webserver, der keine Threads verwendet. Mit diesem Modul verhält sich der Webserver, was die Handhabung von Anforderungen betrifft, ähnlich wie Apache Version 1.x: Er isoliert jede einzelne Anforderung und verarbeitet sie in einem separaten untergeordneten Prozess (Forking). Eine Beeinträchtigung aller Anforderungen durch wenige problematische Anforderungen und somit eine Sperre des Webservers lassen sich dadurch vermeiden.

Die prozessbasierte Vorgehensweise des Prefork-MPM bietet zwar Stabilität, konsumiert aber mehr Systemressourcen als das Worker-MPM. Für UNIX-basierte Betriebssysteme gilt das Prefork-MPM als Standard-MPM.

[Important]MPMs in diesem Dokument

In diesem Dokument wird davon ausgegangen, dass Apache mit dem Prefork-MPM verwendet wird.

46.2.2.2. Worker-MPM

Das Worker-MPM implementiert einen Multithread-Webserver. Ein Thread ist die „Lightweight-Version“ eines Prozesses. Der Vorteil von Threads gegenüber Prozessen ist deren geringerer Ressourcenkonsum. Anstatt lediglich untergeordnete Prozesse zu erstellen (Forking), verarbeitet das Worker-MPM Anforderungen durch Threads mit Serverprozessen. Die untergeordneten Prefork-Prozesse sind auf mehrere Threads aufgeteilt (Multithreading).

Diese Ansatzweise macht den Apache-Server durch den geringeren Ressourcenkonsum leistungsfähiger als mit dem Prefork-MPM. Ein gravierender Nachteil ist allerdings die geringere Stabilität des Worker-MPM: Ein beschädigter Thread kann sich auf alle Threads des Prozesses auswirken. Im schlimmsten Fall fällt der Server dadurch aus. Besonders bei gleichzeitiger Verwendung von CGI (siehe Abschnitt 46.5.1.2, „Common Gateway Interface: mod_cgi) auf einem überlasteten Apache-Server kann es zu internen Serverfehlern kommen, da Threads in diesem Fall unter Umständen nicht in der Lage sind, mit den Systemressourcen zu kommunizieren.

Gegen die Verwendung des Worker-MPM in Apache spricht auch der Fakt, dass nicht alle verfügbaren Apache-Module (siehe Abschnitt 46.5, „Apache-Module“) Thread-sicher sind und daher nicht in Verbindung mit dem Worker-MPM eingesetzt werden können.

[Warning]PHP als Apache-Modul (mod_php)

Nicht alle verfügbaren PHP-Module sind Thread-sicher. Von einer Verwendung des Worker-MPM in Verbindung mit mod_php wird daher abgeraten.

46.2.3. Standarddateisystem und Anwendungslayout

SUSE Linux installiert die Dateien des Apache-Pakets in Standardverzeichnissen. Die Verzeichnisse der wichtigsten Dateien sind in den nachfolgenden Abschnitten aufgelistet.

46.2.3.1. Binärdateien

An die Namen der meisten ausführbaren Dateien von SUSE Linux Apache ist eine 2 angefügt. Dadurch lassen sich die Binärdateien paralleler Installationen von Apache 1.x und Apache 2.x leichter unterscheiden.

/usr/sbin/httpd2

Symbolische Verknüpfung (Symlink) zum gewählten, in Abschnitt Abschnitt 46.2.2, „Multiprocessing-Module“ beschriebenen Multiprocessing-Modul (MPM). Die Standardeinstellung ist httpd2-prefork. Der Symlink wird vom Startskript entsprechend der Systemkonfiguration des MPM erstellt.

/usr/sbin/httpd2-prefork

Die eigentliche ausführbare Datei von Apache2.

/usr/sbin/apache2ctl

Steuerskript zum Starten und Beenden des Webservers, das vom Apache HTTPD-Projekt bereitgestellt wird. Weitere Informationen erhalten Sie in Abschnitt 46.3.3, „Aktivieren, Starten und Beenden von Apache“ bzw. durch Ausführung von /usr/sbin/apache2ctl help.

/etc/init.d/apache2

Start- und Stoppskript, das Apache vollständig in die SUSE Linux-Installation integriert und den Webserver beim Hochfahren startet. Das Skript überprüft die Konfiguration vor dem Starten und Beenden des Servers und überschreibt den Speicherort der Konfiguration. Es ermöglicht den Einschluss weiterer Konfigurationsdateien, das Laden von Modulen und sogar das Starten einer separaten Serverinstanz, ohne dass das Skript bearbeitet werden muss.

/usr/sbin/rcapache2

Ein bequemer Symlink für /etc/init.d/apache2, da /etc/init.d/ standardmäßig nicht im Pfad angegeben werden muss. Zum Starten von Apache brauchen Sie nur rcapache2 start einzugeben.

/usr/sbin/htpasswd2

Dienstprogramm zur Generierung verschlüsselter Passwörter für die .htaccess-basierte Authentifizierung. Informationen zur Verwendung des Tools finden Sie auf der Manualpage htpasswd2(1).

46.2.3.2. Konfigurationsdateien

Die meisten Konfigurationsdateien befinden sich in /etc/apache2. Informationen zur Änderung von Konfigurationseinstellungen finden Sie in Abschnitt 46.3, „Konfiguration“.

/etc/apache2/httpd.conf

Die übergeordnete Konfigurationsdatei. An dieser Datei sollten Sie möglichst keine Änderungen vornehmen. Diese Datei legt in erster Linie die einzuschließenden Konfigurationsdateien sowie globale Einstellungen fest.

/etc/apache2/*.conf

Einige externe Apache-Module legen ihre Konfigurationsdateien im Verzeichnis /etc/apache2/ ab. Den Namen der Konfigurationsdateien wird in der Regel der Modulname vorangestellt (mod_*.conf).

/etc/apache2/conf.d/*

Verzeichnis für verschiedene andere Konfigurationsdateien aus bestimmten Paketen. Ein Beispiel finden Sie in Abschnitt 46.5.3.2, „Unterstützung für PHP: mod_php4, mod_php5.

/etc/apache2/vhosts.d/*

Verzeichnis für die optionalen Konfigurationsdateien der virtuellen Hosts. Weitere Informationen finden Sie in Abschnitt 46.4, „Virtuelle Hosts“.

/etc/sysconfig/apache2

SUSE Linux-Konfigurationsdatei für Apache2. Diese Konfigurationsdatei enthält alle wichtigen Konfigurationsparameter für die Steuerung des Apache-Webservers. /etc/sysconfig/apache2 wird von YaST zur Konfiguration von Apache verwendet (siehe Abschnitt 46.3.1, „Konfigurieren von Apache mit YaST“). Die Datei kann auch manuell bearbeitet werden (siehe Abschnitt 46.3.2, „Manuelle Konfiguration von Apache“).

46.2.3.3. Protokolldateien

In den folgenden Dateien zeichnet Apache verschiedene Informationen über seinen Laufzeitstatus auf:

/var/log/apache2/error_log

In dieser Datei protokolliert Apache die beim Starten und Herunterfahren ausgegebenen Meldungen sowie alle Laufzeitfehler.

/var/log/apache2/access_log

In dieser Datei werden alle Anforderungen an den Webserver protokolliert. Die Einträge in dieser Datei enthalten standardmäßig Informationen über den Host und den Benutzeragenten, von dem die Anforderung stammt, sowie die zugehörige URI.

46.2.3.4. Document Root (absoluter Pfad)

Das physische Verzeichnis /srv/www/htdocs ist der Standardspeicherort, aus dem Apache Webseiten ausgibt. Dieses Verzeichnis dient als „Root-Verzeichnis“ für Client-Anforderungen. Wenn Sie Webseiten mit Apache veröffentlichen möchten, speichern Sie die Dateien hierarchisch in bzw. unter diesem Verzeichnis.

Eine URL wie http://www.beispiel.com/index.html verweist in der Apache-Standardkonfiguration von SUSE Linux auf den Pfad /srv/www/htdocs/index.html einer Domäne namens beispiel.com.

46.2.4. Manuelle Entwicklung von Modulen

Apache ist modulartig aufgebaut, d.h. die Funktionen der Webserver-Software werden in Modulen bereitgestellt. Apache kann daher von erfahrenen Benutzern durch selbst entwickelte Module erweitert werden. Weitere Informationen zu diesem Thema finden Sie auf den in den folgenden Abschnitten genannten Manualpages.

46.2.4.1. apache2-devel

Für die Entwicklung eigener Apache-Module und für die Kompilierung von Drittanbieter-Modulen sind neben dem Paket apache2-devel auch die entsprechenden Entwicklungstools erforderlich. apache2-devel enthält unter anderem die apxs2-Tools, die zur Kompilierung von Apache-Erweiterungsmodulen erforderlich sind.

46.2.4.2. apxs2

Die Binaries von apxs2 befinden sich unter /usr/sbin:

  • /usr/sbin/apxs2: Für die Entwicklung von Erweiterungsmodulen, die mit allen MPMs verwendbar sind. Die Module werden im Verzeichnis /usr/lib/apache2 installiert.

  • /usr/sbin/apxs2-prefork: Für die Entwicklung von Prefork-MPM-Modulen. Die Module werden im Verzeichnis /usr/lib/apache2-prefork installiert.

  • /usr/sbin/apxs2-worker: Für die Entwicklung von Worker-MPM-Modulen.

Die von apxs2 installierten Module können für alle MPMs verwendet werden. Die anderen beiden Programme installieren die Module so, dass sie nur für die jeweiligen MPMs (also „Prefork“ bzw. „Worker“) verwendet werden können. apxs2 installiert seine Module in /usr/lib/apache2, während apxs2-prefork seine Module in /usr/lib/apache2-prefork installiert.

apxs2 ermöglicht die Kompilierung und Installation von Modulen aus dem Quellcode (einschließlich der erforderlichen Änderungen an den Konfigurationsdateien). Dadurch ergeben sich Dynamic Shared Objects (DSOs), die während der Laufzeit in Apache geladen werden können. Zur Installation eines Moduls aus dem Quellcode verwenden Sie die Befehle cd /Pfad/der/Modulquelle; apxs2 -c -i mod_foo.c. Alle weiteren Optionen von apxs2 werden auf der Manualpage apxs2(1) beschrieben. Nach der Installation sollten die Module in /etc/sysconfig/apache2 mit dem Eintrag APACHE_MODULES aktiviert werden, wie in Abschnitt 46.3.2, „Manuelle Konfiguration von Apache“ beschrieben.