Seit einiger Zeit tendiere ich dazu Lighttpd dem guten alten Apachen vorzuziehen. Hauptgrund dafür ist aber weniger die immer wieder hervorgehobene bessere Performance (nicht umsonst setzen z.B. YouTube und MySpace auf den Ultraleichtflieger), sondern das mir die Konfiguration einfach etwas unkomplizierter erscheint als beim, vielleicht etwas mächtigeren, aber dafür auch unübersichtlicheren Apachen. Eigentlich auch egal, denn jeder sollte ja selbst entscheiden wem er den Vorzug gibt.
Eingerichtet wird Lighty hier mit PHP 5 und dem Modul ’simple_vhost‘, mit dem sehr einfach mehrere virtuelle Hosts angelegt werden können.
Wenn wir fertig sind, werden die Seiten unter folgender Ordner-/Dateistruktur organisiert sein:
/var/www/servers – quasi das Hauptverzeichnis des Webservers, hierin werden die virtuellen Hosts angelegt
/var/www/servers/example.com – Ein Beispiel für einen virtuellen Host
/var/www/servers/example.com/htdocs – Hier landen die Dateien, die beim Aufruf von „http://example.com“ angezeigt werden sollen
/var/www/servers/example.com/logs – Hier werden die Logdateien gesammelt
/var/www/servers/example.com/server.conf – In dieser Datei wird die Konfiguration für den Host vorgenommen
So, aber nun direkt rein ins Getümmel und die Installation starten:
Installieren
sudo apt-get install lighttpd php5-cgi
Module aktivieren
Danach werden die oben angesprochenen Module aktiviert (‚fastcgi‘ wird für die Anbindung an PHP benötigt):
sudo lighty-enable-mod fastcgi
sudo lighty-enable-mod simple-vhost
Nach einem ’sudo /etc/init.d/lighttpd force-reload‘ sollte der der Webserver bereits unter http://localhost erreichbar sein.
Konfiguration von mod_simple_vhost
Ausgegangen von der oben erklärten Ordnerstruktur müssen die drei Optionen des ‚mod_simple_vost‘ in der Datei ‚/etc/lighttpd/conf-available/10-simple-vhost.conf‘ folgendermaßen konfiguriert werden:
simple-vhost.server-root = "/var/www/servers/"
simple-vhost.document-root = "/htdocs/"
simple-vhost.default-host = "example.com"
Anstatt ‚example.com‘ muss dort natürlich eure Standarddomain stehen!
Danach sollten die angelegten vHosts unter der jeweiligen Domain erreichbar sein. Dazu ein kleines Beispiel:
Wenn im Browser die Adresse ‚http://zeroathome.de/dingsbums.html‘ aufgerufen werden würde, würde das zur Anzeige der Datei ‚/var/www/servers/zeroathome.de/htdocs/dingsbums.html‘ führen.
Nach einem ‚/etc/init.d/lighttpd force-reload‘ können neue vHosts unterhalb von ‚/var/www/servers/‘ angelegt werden.
Konfiguration der einzelnen vHosts
Problem bei dieser Variante der vHost-Konfiguration ist, dass die Konfiguration der einzelnen Hosts nicht so einfach ist. Doch Opensource wäre nicht was es ist, wenn es nicht auch dafür eine relativ einfache Lösung gäbe. (Die Grundversion stammt übrigens von hier, wurde von mir nur leicht angepasst: http://redmine.lighttpd.net/projects/lighttpd/wiki/HowToSupportConfigurationPerVirtualHost)
Dazu wird die folgende Zeile in die Datei ‚/etc/lighttpd/conf-available/10-simple-vhost.conf‘ eingefügt, die dazu führt das ein kleines Skript ausgeführt wird:
include_shell "/var/www/servers/config_servers"
Anschließend wird die Datei ‚/var/www/servers/config_servers‘ angelegt und mit diesem Inhalt befüllt:
#!/bin/bash
for VHOST in `find /var/www/servers/ -mindepth 1 -maxdepth 1 \( -type d -or -type l \) -exec test -e "{}/server.conf" \; -exec basename "{}" \; 2>/dev/null` ; do {
echo "\$HTTP[\"host\"] == \"$VHOST\" {"
echo "var.vhost_name = \"$VHOST\""
echo "var.vhost_path = \"/var/www/servers/$VHOST\""
cat "/var/www/servers/$VHOST/server.conf"
echo "server.errorlog = \"/var/www/servers/$VHOST/logs/error.log\"",
echo "accesslog.filename = \"/var/www/servers/$VHOST/logs/access.log\""
echo "}"
} ; done
Zu guter Letzt wird die Datei noch ausführbar gemacht:
sudo chown www-data:www-data /var/www/servers/config_servers
sudo chmod u+x /var/www/servers/config_servers
Dann natürlich noch ein ‚/etc/init.d/lighttpd force-reload‘ und die neue Konfiguration ist übernommen.
Die Konfigurationsdatei muss dann, wie oben bereits erwähnt unter ‚/var/www/servers/example.com/server.conf‘ liegen um berücksichtigt zu werden. Nachdem eine neue Konfigurationsdatei hinzugefügt wurde oder eine vorhandene geändert wurde, muss immer ein ‚/etc/init.d/lighttpd force-reload‘ erfolgen, sonst ist die Konfiguration nicht wirksam!
Fertig!
So, das wars bereits. Ein Grundkonfigurierter Lighty fertig für die Arbeit als lokaler oder Internet-Webserver. Wenn gewünscht gibts demnächst noch einige Erweiterungen, wie zum Beispiel SSL oder WebDAV.
Alle Angaben natürlich wie immer ohne Gewähr und alles auf eigene Gefahr und so!