Apache HTTP Server unter Ubuntu Linux zu Entwicklungszwecken installieren
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