Möchte man an einer Webanwendung arbeiten, benötigt man einen Webserver. Gerne nimmt man hierfür den Apache HTTP Server (abkürzend auch mit httpd bezeichnet). Arbeitet man nur gelegentlich an der Webanwendung, so möchte man nicht unbedingt, dass der Webserver bei jedem Hochfahren des Betriebssystems als Dienst mitgestartet wird. Um von Updates am Apache HTTP Server zu profitieren, lohnt es sich die Installation über die Paketverwaltung Ubuntus laufen zu lassen.

Wie man httpd lokal zu Entwicklungszwecken unter Ubuntu installiert, soll in diesem Beitrag in Kürze beschrieben werden, ausgehend von Ubuntu 14.04.1. Wer nähere Informationen benötigt findet diese unter:

Installation der benötigten Pakete

Die eigentliche Installation der Anwendung und der Dokumentation erfolgt über:

sudo apt-get install apache2 apache2-doc

Hiernach ist httpd installiert und so eingerichtet, dass der Dienst beim Hochfahren mitgestartet wird und der Webserver von außen erreichbar ist.

Einschränkung auf lokalen Zugriff

Zur lokalen Entwicklung empfiehlt es sich, den Zugriff von außen zu unterbinden. Hierzu ist die Datei /etc/apache2/ports.conf zu editieren. Hier müssen die Zeilen

Listen 80

in

Listen localhost:80

abgeändert werden. Analog sind auch die Ports für HTTPS anzupassen, falls mit SSL-Zertifikaten gerabeitet werden soll:

Listen 443

zu

Listen localhost:443

Die Änderungen werden mit einem Neustart übernommen:

sudo /etc/init.d/apache2 restart

Einbinden des Benutzerverzeichnisses

Im Standardfall lädt sich httpd die Dateien aus dem Verzeichnis /var/www/html. Damit die Dateien stattdessen aus dem Benutzerverzeichnis ~/public_html geladen werden, muss ein Modul aktiviert und die Konfiguration neu geladen werden:

sudo a2enmod userdir
sudo /etc/init.d/apache2 reload

Beim Aufruf einer Webseite aus dem Benutzerverzeichnis ist darauf zu achten, dass der Benutzername in der URL angegeben wird. Für den Dateipfad

/home/bob/public_html/beispiel.html

ergibt sich somit die URL

http://localhost/~bob/beispiel.html

Manueller Dienststart

Nun kann der automatische Dienststart beim Hochfahren noch durch folgenden Befehl unterbunden werden:

sudo update-rc.d -f apache2 remove

Hierbei sollte man die Ausgabe des Befehls beachten, um anhand dieser Informationen die Verknüpfungen zu entschärfen (s. u.). Zum Beispiel:

Removing any system startup links for /etc/init.d/apache2 ...
/etc/rc0.d/K09apache2
/etc/rc1.d/K09apache2
/etc/rc2.d/S91apache2
/etc/rc3.d/S91apache2
/etc/rc4.d/S91apache2
/etc/rc5.d/S91apache2
/etc/rc6.d/K09apache2

Um nun dafür zu sorgen, dass httpd nach einem Paket-Update nicht wieder automatisch gestartet wird, muss noch die Verknüpfung für die einzelnen Runlevel entschärft werden:

sudo update-rc.d apache2 stop 91 2 3 4 5 . stop 09 0 1 6 .

Um zukünftig den Server zu starten, folgendes eingeben:

sudo /etc/init.d/apache2 start

Und um ihn zu stoppen:

sudo /etc/init.d/apache2 stop