Apache ist für 90% der Webhosting Sachen einfach übertrieben. Wer nutzt die Proxy Funktionalität? Alle mod_rewrite Funktionen? Fast niemand.
Die Alternative heißt einfach: Lighttpd. Tinyhttpd (thttpd) hat weniger Funktionen als Lighty, läuft teilweise langsamer, hat problem mit PHP - also alles in allem nur für Embedded Systeme geeignet. Lighty hingegen ist ein direkter Apache Konkurrent. Es ist fast zu einfach PHP Scripte mit besonderen Rechten laufen zu lassen (suexec/suphp), er liefert die Webseiten schneller aus, die Konfiguration ist angenehmer z.b. das einbinden von Addhandlern für eine bestimmte Domain ist supereinfach, er sperrt sich und seine betreuten Domains inkl. Programme in ein eigenes
Chroot -ausbrechen daraus ist nur schwer möglich, usw. Lighty ist einfach eine prima Alternative wenn man nur eine handvoll Domains verwaltet oder daheim einen einfachen Webserver benötigt. Der Ressourcenfressende Apache ist einfach vom Konzept her veraltet. Apache 2 versucht das auszugleichen, aber kommt an Lighty einfach nicht ran.
In Benchmarks habe ich daheim Forensoftware, Blogs, Wikis und eigenprogrammierte Sachen getestet, Lighty ist ca 20% schneller bei mir gewesen wie ein normal Konfigurierter Apache. Der Benchmark lief allerdings mit dem Apache Benchmark, also keine Aussage ob simultane Verbindungen mehrerer IP´s schneller sind.
Da in der lighttpd.config die Interpreter festgelegt werden können, kann man auch sehr einfach ein Script verwenden das suExec nutzt, oder man kann /usr/sbin/php4-cgi ein paar Variablen mit auf dem Weg geben um z.b. bestimmten Domains eine eigene PHP config zu verpassen. In Apache muss man sich auf den Kopf stellen um sowas zu bewerstelligen, dort muss ich im Virtualhost einen eigenen Add-Handler anlegen und diesen auf ein Script legen wenn ich solche Optionen haben möchte.
Wer allerdings WebDAV nutzen möchte in verbindung mit LDAP, der tut sich mit Lighty noch etwas schwer, die Entwicklung wird allerdings irgendwann ausgereift sein. Sehr cool finde ich, das ich ein Verzeichniss schützen kann und die User aus einer LDAP Datenbank verwendet werden können. Das macht es einfacher Webadministration zu betreiben, denn solche Scherze wie bei Apache, das ich mittels Cronjob die Daten aus der Datenbank lese und dann eine Datei anlegen muss, Apache neustarten etc. erspart sich damit. Der Apache 2 soll diese fähigkeit haben, aber wozu ein Auto kaufen wenn man nur ein Reifen braucht?
Alles in allem finde ich es nur schade das SysCP nie ein Plugin für Lighty angeboten hat, ich würde sofort wechseln. Die Hacks die es gibt funktionieren teilweise nicht mehr oder ich muss sie anpassen. Das kann ich nicht bei jedem Versionsupgrade neu machen.
Wer sich selbst ein Bild machen möchte, der geht auf
http://www.lighttpd.net/ und lädt sich die neuste Version runter. Ein einfaches
./configure && make && make install im Entpackten Ordner reicht aus um Lighttpd zu installieren. Ubuntu Server User haben das Glück das es eine
vorkompilierte Version gibt die man mittels
aptitude install lighttpd einfach installieren kann.
Wer selbst kompiliert, der braucht ein Startscript. Ich weiß nicht ob Ubuntu eines mitbringt, aber hier ist mal ein init.d Script:
#!/bin/bash
#
# Lighttpd Starting Script
#
NAME=lighttpd
DAEMON=/usr/local/sbin/$NAME
PIDFILE=/var/www/run/lighttpd.pid
CONF=/etc/lighttpd/lh.conf
case "$1" in
start)
echo -n "Starting web server: $NAME"
$DAEMON -f $CONF > /dev/null
;;
stop)
echo -n "Stopping web server: $NAME"
start-stop-daemon --stop --pidfile $PIDFILE --oknodo
rm $PIDFILE
;;
restart)
echo -n "Restarting $NAME"
/bin/kill `cat $PIDFILE`
$DAEMON -f $CONF > /dev/null
;;
*)
echo "Usage: /etc/init.d/$NAME {start|stop|restart}"
exit 1
;;
esac
if [ $? -eq 0 ]; then
echo .
exit 0
else
echo " failed"
exit 1
fi
das einfach nach
/etc/init.d/lighttpd schreiben, ausführbar machen und ein
update-rc.d lighttpd defaults setzt die Links damit der Webserver nun auch beim booten startet. Die Konfiguration kann man mit dem
Lighttpd rails generator einfach und schnell selbst machen.
Mehr muss man nicht machen, ausser halt seine vhosts einbauen, hier ein Beispiel:
#
# hans-wurst.de
#
$HTTP["host"] == "hans-wurst.de" {
server.indexfiles = ( "index.php", "index.html" )
server.document-root = "/var/www/virts/hans-wurst.de/"
fastcgi.server = ( ".php" =>
( "localhost" =>
(
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/local/bin/php"
)
)
)
}
Wer mit fastcgi arbeitet muss halt das Script von oben anwenden, das macht das schon

Daheim ist es ja egal, ist ja sowisso nicht von aussen erreichbar. Wer eben mehr Sicherheit will, der verwendet Lighty in einem Chroot und auch die FastCGI Instanzen in einem Chroot.
Nur aufpassen das die FCGI Instanzen von Lighty erreichbar sind. Der Rest ist ein Kinderspiel. Einfach an die Anleitung auf der Lighty Homepage halten und Ihr werdet Glücklich.
So, viel Spaß dann mit eurem Lighty
p.s. Lighty ist eine Superschnelle Lösung wenn man ein Mapserver für CS aufzieht, probiert es mal aus.