20.4 Web-Server Apache 

Webdesigner und Blogger schätzen die Möglichkeit, unter Ubuntu Linux in kurzer Zeit einen voll funktionsfähigen Apache-Web-Server aufsetzen zu können, um ihre Web-Inhalte im lokalen Netz zu testen, bevor diese auf den Internet-Server hochgeladen werden.
Das HTTP-Protokoll
Ein Protokoll legt Übertragungsstandards fest, es ist eine vereinbarte Logik für die Datenübertragung (Inhalt, auch zeitlicher Ablauf), und es ist eine Spezifikation über das Datenformat und auch dessen Bedeutung (Syntax/Semantik).
Das Hypertext Transfer Protocol (HTTP, dt. Hypertext-Übertragungsprotokoll) ist ein Protokoll zur Übertragung von Daten über ein Netzwerk. Hauptsächlich wird es eingesetzt, um z. B. Webseiten aus dem World Wide Web (WWW) in einen Browser zu laden. Es stellt ein recht einfaches, auf einer Client-Architektur aufbauendes Request/Response-Protokoll dar. Derzeit werden zwei Protokollversionen, HTTP/1.0 und HTTP/1.1, verwendet:
- Bei der Version 1.0 wird vor jeder Anfrage eine separate TCP-Verbindung aufgebaut und nach Übertragung der Antwort wieder geschlossen. Dies bedeutet, dass für komplexe Webseiten, die aus mehreren Elementen bestehen, verschiedene parallele TCP-Verbindungen aufgebaut werden müssen. Da die Geschwindigkeit dieser Verbindungen aufgrund des Slow-StartAlgorithmus recht gering ist, ist die Ladezeit für die gesamte Seite bei mehreren bestehenden Verbindungen deutlich verlängert.
- In der Version 1.1 können gleichzeitig mehrere Anfragen und Antworten auf einer TCP-Verbindung gesendet werden. Dies verkürzt die Ladezeiten bei komplexen Webseiten drastisch. Zusätzlich können bei HTTP/1.1 abgebrochene Übertragungen fortgesetzt werden.
Bei HTTP gehen Informationen aus früheren Anforderungen verloren. Über Cookies in den Header-Informationen können aber Anwendungen realisiert werden, die Statusinformationen (Benutzereinträge, Warenkörbe) zuordnen können. Dadurch können Anwendungen realisiert werden, die Status- bzw. Sitzungseigenschaften erfordern. Auch eine Benutzerauthentifizierung ist möglich.
Normalerweise kann die Information, die über HTTP übertragen wird, auf allen Rechnern gelesen werden, die im Netzwerk durchlaufen werden. Über HTTPS kann die Übertragung verschlüsselt erfolgen.
Die ursprüngliche Idee von Tim Berners-Lee, dem Erfinder des World Wide Webs, war, dass das Web ein sowohl lesbares als auch editierbares Medium sein sollte, und sein erster Web-Browser, genannt WorldWideWeb, war in der Lage, Seiten auch permanent zu editieren. Als das Web wuchs, wurde es jedoch zu einem »Nur-Lese-Medium«. Nebenbei bemerkt enthalten auch die aktuellen HTTP-Spezifikationen noch die Requests PUT und DELETE, die jedoch von den allermeisten Web-Servern mit der Meldung 405 Method Not Allowed abgelehnt werden.
Apache
Folgende Pakete sind zunächst für die aktuelle Apache-Server-Basis zu installieren:
- apache2
- apache2-common
- apache2-doc
Damit wird das neue Apache2-Release installiert. Wenn Sie ein schlankes, bewährtes System bevorzugen, können Sie auch getrost auf die ältere Version 1.3.x zurückgreifen und folgende Pakete installieren:
- apache
- apache-common
- apache-doc
Zusätzlich können Sie noch einige Module installieren, um den Apache z. B. um die PHP- sowie Python-Funktionalität zu erweitern:
Zur Integration von PHP sind dies:
- libapache2-mod-php5
- php5
- PHP-Module wie pear, mysql, pgsql, ...
Python wird mit folgenden Paketen nachgerüstet:
- libapache2-mod-python
- python
Nach der Installation der obigen Pakete via apt-get bzw. Synaptic lässt sich der Apache-Server mit folgenden Kommandos kontrollieren:
user$ sudo /etc/init.d/apache <start|stop|restart>
Test per Browser
Um den Browser zu testen, verwenden Sie jeweils einen der Parameter start, stop bzw. restart. Ob der Server läuft, erfahren Sie am einfachsten durch den Aufruf der lokalen IP-Adresse bzw. durch Eingabe des Schlüsselworts localhost in einem Browser Ihrer Wahl. Dort wird dann zunächst ein Verzeichnis apache2-default angezeigt. Klicken Sie dieses an, so landen Sie auf der Default-Startseite des Web-Servers (Abbildung).
Das Verzeichnis des Web-Servers befindet sich in der Standardeinstellung unter /var/www und ist nur für den Administrator beschreibbar. Sämtliche nachinstallierten Module legen dort ebenfalls ihre Dateien ab. Möchten Sie als normaler Nutzer Web-Inhalte testen, so empfiehlt es sich, das Verzeichnis entweder für alle les-/schreibbar zu machen oder es einfach mithilfe eines symbolischen Links umzusiedeln.
Abbildung 20.2 Die Startseite des Apache-Web-Servers
Die folgenden Befehle verschieben das Verzeichnis in ein privates /home-Verzeichnis:
user$ sudo cd /home/<Benutzer> user$ sudo mv /var/www . user$ sudo chown –R <Benutzer> www user$ sudo ln –s /home/<Benutzer>/www /var/www
Nun können Sie in dem entsprechenden Verzeichnis ohne Root-Rechte arbeiten. Testweise können Sie dort beispielsweise eine Seite index.html erstellen, die dann automatisch beim Aufruf der entsprechenden IP-Adresse dargestellt wird.
Startdienste definieren
In der Standardkonfiguration wird der Apache-Server bei jedem Booten des Systems gestartet. Wenn Sie das nicht wünschen, so können Sie den Apache-Dienst folgendermaßen aus dem Boot-Prozess entfernen:
user$ sudo update-rc.d -f apache2 remove
Soll der Dienst wieder automatisch beim Booten gestartet werden, so kann er erneut über den Befehl
user$ sudo update-rc.d apache2 defaults
aktiviert werden. Dadurch wird das Startskript in die entsprechenden Runlevel-Vezeichnisse geschrieben. Interessant ist noch die Möglichkeit, den Apache-Server mit Modulen aufzurüsten. So liefert beispielsweise das Paket phpsysinfo in Verbindung mit dem PHP-Modul Informationen über den Status des Systems, z. B. die Festplattenkapazitäten, den Prozessortyp und dessen Temperatur.





Jetzt bestellen







