Lighttpd

Lighttpd und PHP4 unter Debian sarge

Author: Florian (floschi) Schießl

Copyright und Lizenz

Feedback

Feedback zu diesem Dokument ist natürlich willkommen, fachliche Fragen bitte an die Mailingliste mailto:howto%20[at]%20lists%20[dot]%20debianhowto%20[dot]%20de, sonstige Fragen an den Autor.

Einleitung / Abstrakt

Der lighttpd ist mit dem Ziel entwickelt, einen schlanken und schnellen Webserver zu erschaffen. Mittlerweile erfreut er sich immer größerer Beliebtheit und ist u.a. beim Debianhowto seit einiger Zeit im Einsatz - mit deutlich weniger genutzten Ressourcen als der Apache2. Grund genug, hier mal kurz und knapp auf deutsch die Grundinstallation zu beschreiben.

Es gibt derzeit kein fertiges Debianpaket für Debian sarge, erst mit der Veröffentlichung von Debian Etch (aktuell SID) wird es ganz ohne Probleme möglich sein, den lighttpd zu installieren. Trotzdem ist es aktuell bereits supersimpel, das Tutorial von http://trac.lighttpd.net/trac/wiki/TutorialInstallation sagt eigentlich alles. Im Folgenden dokumentiere ich meinen Weg, der darauf basiert.

Installation

Zunächst sorgen wir dafür, dass die notwendigen Pakete installiert sind, bevor wir mit dem Bau eines lighttpd-Paketes beginnen können. Einfach als root den Debian-Way nutzen:

aptitude install zlib1g mysql-common libmysqlclient12 libpcre3-dev zlib1g-dev libbz2-dev libssl-dev debhelper

Since lighttpd 1.4.8 the debian/ directory was removed to simplify the inclusion into Ubuntu and Debian. If you want to build your own debian package take the debian/ dir from a older release and update the debian/changelog and follow the steps below

Seit Version 1.4.8 wurde im lighttpd-Quellcode das Unterverzeichnis debian/ entfernt, um die Aufnahme in die reguläre Entwicklung von Ubuntu und Debian zu erleichtern. Die lighttpd-Doku empfiehlt aber, einfach das debian/ Verzeichnis einer alten Quellcodeversion zu nehmen, das debian/changelog entsprechend anzupassen und ein eigenes aktuelles Paket zu bauen. Im Einzelnen:

Alte und aktuelle Version (die aktuelle Versionsnummer und den entsprechenden Link gibt’s auf http://www.lighttpd.net/download/) vom lighttpd holen:

cd /usr/local/src/
wget http://mirrors.cat.pdx.edu/lighttpd/lighttpd-1.4.7.tar.gz
wget http://www.lighttpd.net/download/lighttpd-1.4.15.tar.gz

Beide entpacken und wie oben erklärt das debian/ Unterverzeichnis der alten in die neue Version kopieren:

tar xzf lighttpd-1.4.7.tar.gz
tar xzf lighttpd-1.4.15.tar.gz
cp -R lighttpd-1.4.7/debian lighttpd-1.4.15/

Jetzt das changelog entsprechend anpassen (einfach einen Block oben einfügen, der dem darunter entspricht - nur eben mit den aktuellen Daten):

cd lighttpd-1.4.15/
vi debian/changelog

Jetzt kann das Paketbauen beginnen. Wer keinen Compiler auf seinem System hat benötigt noch das Paket gcc (aptitude install gcc). (Eventuel fehlt auch noch das Paket: debhelper (apt-get install debhelper).

dpkg-buildpackage

Im übergeordneten Verzeichnis befindet sich nun (hoffentlich) ein fertiges backfrisches Debianpaket, das mit dem dpkg-Mechanismus installiert (und ggf. wieder entfernt) werden kann:

cd ..
dpkg -i lighttpd_1.4.15-1_i386.deb

Wenn alles glatt gelaufen ist, rennt jetzt bereit der lighttpd. Sollte aktuell noch der Apache2 laufen, dann kann er natürlich den Port 80 nicht nutzen und bricht vorerst beim Start ab.

Ebenso kann durch obige Schritte eine bestehende lighttpd-Version ersetzt werden.

Konfiguration

Wenn der lighttpd jetzt erfolgreich startet, ist wie beim Apache sein Standardverzeichnis /var/www. Die Logs finden sich unter /var/log/lighttpd/, das PID-File unter /var/run/lighttpd.pid. Wie auch der Apache läuft der lighttpd als unprivilegierter Systembenutzer www-data mit gleichnamiger Gruppe.

PHP4 mittels Fastcgi

Auch hierfür gibt es eine gute Anleitung des lighttpd-Projektes unter http://trac.lighttpd.net/trac/wiki/TutorialLighttpdAndPHP . Dort sind auch einige weiterführende Links. Die einfachsten Schritte hier nochmals auf deutsch.

Erstmal das minimal notwendige PHP4-Paket installieren:

aptitude install php4-cgi

In der PHP-Konfigdatei /etc/php4/cgi/php.ini muss im Abschnitt [PHP] folgende Zeile eingefügt werden:

cgi.fix_pathinfo = 1

Dann muss dem lighttpd noch gesagt werden, dass und wie er PHP einbinden soll. Dazu in der Konfigurationsdatei /etc/lighttpd/lighttpd.conf das Kommentarzeichen (#) vor folgender Zeile entfernen:

#          "mod_fastcgi",

Der folgende Konfigurationsblock ist bereits in der /etc/lighttpd/lighttpd.conf enthalten. Auch hier wieder die Kommentarzeichen (#) am Zeilennfang entfernen:

#fastcgi.server              = ( ".php" =>
#                             ( "localhost" =>
#                               (
#                                 "socket" => "/tmp/php-fastcgi.socket",
#                                 "bin-path" => "/usr/local/bin/php"
#                               )
#                             )
#                           )

Zusätzlich muss in obigem Konfigblock noch der richtige PFad zum Debian-PHP4-cgi angegeben werden, d.h. bei “bin-path” muss auf der rechten Seite

/usr/bin/php4-cgi

stehen. Jetzt am einfachsten im DocRoot eine Datei mit der berühmten phpinfo() Funktion erstellen, den lighttpd neu starten und diese Datei mittels Browser aufrufen - das Ergebnis sollte die bekannte PHPInfo-Seite sein.

/etc/init.d/lighttpd restart

Einfache vhosts

Dazu gibt’s natürlich bereits eine sehr gute Doku: http://www.lighttpd.net/documentation/simple-vhost.html

Letztlich muss das Modul

       "mod_simple_vhost",

wie oben bei fcgi durch das Entfernen des Kommentarzeichens (#) aktiviert werden und der bereits im Konfigfile /etc/lighttpd/lighttpd.conf enthaltene Konfigurationsblock den eigenen Bedürfnissen entsprechend angepasst werden (auch dort wieder die Kommentarzeichen entfernen):

#simple-vhost.server-root         = "/home/weigon/wwwroot/servers/"
#simple-vhost.default-host        = "grisu.home.kneschke.de"
#simple-vhost.document-root       = "/pages/"

Abschließend natürlich noch ein Neustart:

/etc/init.d/lighttpd restart

Hier noch ein ausführlicheres vhost-HowTo: http://trac.lighttpd.net/trac/wiki/HowToSetupFastCgiIndividualPermissions

Logformat combined

Wer das Logformat combined (u.a. Voraussetzung für einige Statistikprogramme) nutzen möchte, fügt folgende Zeile in der Konfigurationsdatei ein

accesslog.format = "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\""

Auch hier natürlich noch ein Neustart:

/etc/init.d/lighttpd restart

Weitere Infos gibt’s unter http://www.lighttpd.net/documentation/accesslog.html

Komprimierung

Auch zur on-the-fly Komprimierung gibt es bereits ein Modul “mod_compress” beim lighttpd, dass noch wie fcgi und simple_vhost durch entfernen des Kommentarzeichens (#) aktiviert werden muss.

Die folgende Zeile existiert bereits im Konfigfile:

#compress.filetype           = ("text/plain", "text/html")

Sie kann natürlich um typische Dateitypen erweitert werden:

compress.filetype           = (
                      "text/plain",
                      "text/html",
                      "text/javascript",
                      "text/css",
                      "text/xml"
)

Und, wie sollte es anders sein, auch hier natürlich noch ein Neustart:

/etc/init.d/lighttpd restart

Doku unter http://trac.lighttpd.net/trac/wiki/Docs:ModCompress

Installation über Bordmittel

Mittlerweile existiert unter http://www.backports.org/ auch ein lighty backport von sid. Damit reduziert sich die Installation auf ein Anpassen der /etc/apt/preferences /etc/apt/sources.list und auf ein aptitude install lighttpd. Allerdings ist der Backport noch Version 1.4.11, aktuell ist 1.4.15.

de/howtos/sarge/lighttpd.txt · Zuletzt geändert: 2007/04/14 11:24 von 82.218.13.182
 
Recent changes RSS feed Powered by PHP hosted by vdserver.de Valid XHTML 1.0 Driven by DokuWiki