Migration von apache2 zu lighttpd

Wie bereits in einem früheren Artikel erwähnt haben wir unseren Webserver, ein debian basierendes System, von apache2 zu lighttpd migriert. Gründe für einen solchen Wechsel gibt es viele, vor allem beim ausliefern von statischen Dateien gilt lighttpd, auch lighty genannt, als eine der besten Optionen. So setzten auch youtube und wikipedia auf das Leichtgewicht um solche Daten auszuliefern. Doch auch was dynamische Inhalte angeht, in unserem Fall php, braucht lighty sich nicht zu verstecken.

Lange Rede kurzer Sinn, hier ein kleines Howto für die Migration, im ersten Teil geht es darum erstmal lighty zum laufen zu bekommen, gleich zu Anfang:
Es kann durchaus sein das sich Fehler, oder Missverständnisse meinerseits, in dieser „Anleitung“ finden. Es ist nicht so als wäre ich ein besonderer Kenner des Servers. Diese Anleitung spricht im speziellen von lighttpd 1.4.X und php5. Nunja, legen wir los:

1. BACKUP:

Als erstes solltet ihr ein Backup des Servers anlegen damit, sollte was schiefgehen, zumindest der alte Auftritt noch verfügbar ist.

2. INSTALLATION:

Ist das erledigt können wir mit dem installieren der relevanten Packete loslegen, bei diesem Prozess brauch ihr root Rechte oder müsst vor jeden ’sudo‘ schreiben um die nötigen Rechte für diesen Befehl zu erhalten.
apt-get install lighttpd, php5-cgi
Solltet ihr etwas anderes als nur php5 benötigen müsst ihr das natürlich auch installieren.
ACHTUNG: Direkt nach der installation des lighttpd versucht die Installation diesem auf Port 80 zu starten. Sollte dort noch euer Apache2 laufen wird die natürlich fehlschlagen, ist aber nicht weiter tragisch, im Gegenteil 😉

3. LIGHTTPD.CONF:

Als nächstes öffnet ihr mit dem Editor eurer Wahl die lighttpd Konfigurationsdatei, ich benutzte meistens nano. Meistens empfielt es sich die originalkonfiguration zu speichern bevor man was kaputtmacht.
cp /etc/lighttpd/lighttpd.conf /etc/lighttpd/lighttpd.conf.bak
nano /etc/lighttpd/lighttpd.conf

Gehen wir das mal von oben an durch, die Struktur dürfte bei den meisten Sachen ziemlich klar sein, ‚modul.variable = Wert‘.

server.modules: Hier wird angegeben welche Erweiterungsmodule der Server beim starten laden soll. Weniger module = weniger Speicherverbrauch. Es sind schon einige standardeinträge vorhanden, viele sind mit einer ‚#‘ auskommentiert, werden also nicht beachtet. Entferne die ‚#‘ vor der Zeile in welcher ‚mod_accesslog‘ steht, dieses Modul werden wir für das Zugriffslog brauchen. Solltet ihr mehr über die Module erfahren wollten so findet ihr die möglichen Einstellungen hier.

server.document-root: Die erste Variable die interresant sein dürfte ist die ’server.document-root‘, diese gibt das Standard Quellenverzeichniss für euere Dateien an und entspricht der ‚ServerRoot [PFAD]‘ Variable im apache2. Setzt diese also auf den gleichen Wert.

server.errorlog: Hier wird lighty seine logdatei für Fehler ablegen. Ich würde nicht das alte des Apaches angeben, die Formate sind inkompatibel. Ich habe es einfach so belassen.

accesslog.filename: Dieser Pfad gibt an wo die Seitenzugriffe protokolliert werden sollen. Da das default Format kompatibel zum Apache2 default ist könnt ihr hier, falls gewünscht, euer altes Zugriffslog angeben. Sollte das Speicherformat nicht euren wünschen entsprechen kann es mit der Variable accesslog.format angepasst werden.

url.access-deny: Diese Variable gibt an welche Dateiendungen der Server nicht ausliefern soll. Es ist wichtig hier die früher benutzten .htaccess .htpasswd Dateien einzutragen. lighttpd kennt diese nicht und bietet sie unwissend zum Download an. Die Zeile könnte danach in etwas so aussehen:
url.access-deny = ( "~", ".inc", ".htaccess", ".htpasswd" )
Solltet ihr eure passwort Dateien anders benannt haben so müsst ihr das natürlich entsprechend ändern.

server.port: Diese Variable ist standardmäßig auskommentiert. Will man den Server auf einem anderen port als 80 laufen lassen muss dieser hier eingetragen sein. Ich fand es recht angenehm lighty eine Weile auf einem anderen port laufen lassen zu können während der apache2 auch weiterhin funktionierte. So kann man in Ruhe testen ohne etwas kaputtzumachen. Entfernt also das ‚#‘ und passt eventuell den port an falls euch die 81 nicht zusagt.

server.dir-listing: Wollt ihr verhindern das lighty Verzeichnisse ohne Index Datei als Liste darstellt so muss diese Variable auf „disable“ stehen. Es ist leicht dieses später für spezielle Verzeichnisse wieder zu aktivieren.

server.tag: Gibt an mit welchem Namen sich lighttpd in den Headern etc. identifizieren soll. Standardmäßig ist darin auch die Version enthalten, etwas das man nicht unbedingt herausposaunen muss. Ich empfehle folgende Zeilen an beliebiger Stelle einzufügen:
## Hide banner
server.tag = ""

Dies deaktiviert das entsprechende Headerfeld komplett. Ihr könnt natürlich jeden beliebigen Namen angeben lassen 😉

Sooo, das war schonmal die Basiskonfiguration. Wir werden die restlichen Konfigurationen in einer seperaten Datei vornehmen um die lighttpd.conf nicht zu sehr zuzumüllen. Speichert die Datei ab und schließt den Editor (nano: Strg+X, mit Y bestätigen). Nun dürfte der lighttpd bereits lauffähig sein.

Ihr könnt, denkt daran: wir haben bisher weder das alte .htaccess wieder hergestellt noch das Name based hosting, müsst aber nicht, den lighttpd jetzt mit:
/etc/init.d/lighttpd start
Starten. Sollte dies fehlschlagen so überprüft eure Konfiguration.

Damit bin ich für den ersten Teil der „Serie“ am Ende. Weitere Teile werden wohl die Portierung der alten .htaccess Dateien, php5 Einrichtung sowie Name based virtual hosting und SSL abhandeln. Je nachdem wie ich Zeit habe werden sie schneller oder langsamer erscheinen 😉

Dieser Beitrag wurde unter Computer abgelegt und mit verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.