Posts Tagged ‘web’

Lighttpd mit vHosts unter Ubuntu Hardy

25.05.2009

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.

Lighttpd Testseite

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!

Meine Top 5 Web Applikationen

02.10.2008

Hier kommen mal die Top 5 meiner Lieblingswebapplikationen, also diejenigen Applikationen, die man (theoretisch) von jedem Ort dieser Welt aus bedienen kann, vorrausgesetzt der Ort verfügt über einen Internet-Zugang und einen geeigneten Browser.

Remember The Milk

Da wäre zunächst Remember The Milk, schnell umschrieben eine To-Do-Liste auf Steroiden. Zusammen mit dem Firefox-Addon zur Integration in Google Mail für mich die kompletteste To-Do-Liste, die man derzeit im Web finden kann. Ausserdem gibt es Unterstützung für

  • Google Calendar
  • iGoogle
  • iPhone/iPod touch
  • Blackberry/Windows Mobile (nur mit kostenplichtigem pro-Account)
  • mobile Browser (z.B. auf Handys)

Einen Überblick über alle Funktionen von Remember The Milk gibt es hier.

Instapaper

So einfach wie Instapaper auch gestrickt ist, so genial ist es auch. Über ein Bookmarklet im Browser lassen sich Seiten, für die man gerade keine Zeit hat sie zu lesen, fürs spätere Lesen aufbewahren. Ursprünglich für das iPhone entworfen sollte Instapaper aber auch in allen anderen Javascript-fähigen Browsern funktionieren. Klein aber fein, kann man da nur sagen.

delicious

Ich denke über delicious.com brauche ich nich allzu viele Worte zu verlieren. So gut wie jeder kennt den Social-Bookmarking Service. Zusammen mit der Firefox-Erweiterung (Tools für andere Browser sind ebenfalls vorhanden) ein gutes Tool um seine Bookmarks auf verschiedenen Rechnern benutzen zu können. Oder eben auch um neue interessante Seiten zu finden, Social Bookmarking eben ;-)

Google Apps

Definitiv meine meistgenutzte Applikations-Gruppe. Man mag ja zu Google stehen wie man möchte, aber die Kombination von Mail-Client, Kalender, Feed-Reader und Dokumenten-Verwaltung ist für mich im Moment nich mehr wegzudenken. Mein kompletter Mail-Verkehr läuft über GMail, natürlich mit Backup zu Hause. Meine Termine verwalte ich mit Google Calendar in Kombination mit Remember The Milk. Mit dem Google Reader kann ich von jedem Rechner aus meine Feeds durchblättern und mich nicht durch tausende ungelesene Nachrichten wühlen wenn ich mal ein paar Tage vom heimischen Rechner getrennt bin. Google Docs ist mit Sicherheit (noch) keine vollständige Office-Suite wie OpenOffice.org z.B. aber für den Standard-Kram reicht es allemal. Auch die Möglichkeit der Kollaboration an Dokumenten ist ein guter Grund Google Docs mal zu testen.

Daneben gibt es natürlich noch einige andere Dinge in der Google-Welt, wie zum Beispiel Google Maps und das Google Notebook, das ich allerdings nicht so sehr gelungen finde bisher, da gibt es deutlich bessere Alternativen.

soup.io

Ein Anbieter für Tumblelogs, also kleine Blogs (aber auch wieder kein Microblogging), auf denen einzelne Bilder, Links und ähnliches schnell gepostet werden können. Bei mir dient soup.io hauptsächlich als Linkblog in dem verschiedene Dienste zusammenlaufen. Unter anderem meine Shared Items aus dem Google Reader, meine Delicious Links, meine Unreads bei Instapaper. Quellen können im RSS-Format beliebig hinzugefügt werden, oder man kann eben manuell Posts hinzufügen (praktischerweise über ein Bookmarklet)

Und jetzt noch eine kleine Challenge: Versucht mal auf der "Jetzt auf Soup"-Seite von soup.io (oben auf "Jetzt auf Soup" klicken) nach ganz unten zu scrollen...wers schafft bekommt ein Eis (oder vll doch lieber eine heiße Schokolade, bei dem Wetter)!

Und ihr?

Irgendwelche Ergänzungen eurerseits? Irgendwas was ich auf jeden Fall mal testen sollte? Her damit! Am besten per Kommentar, per Jabber (zeroathome@jabber.ccc.de) oder per identi.ca (http://identi.ca/zero)