Installation von Lighttpd mit PHP5 und MySQL Unterstützung auf Debian Etch

Version 1.0
Author: Falko Timme


Lighttpd ist ein sicherer, schneller und standardisierter Web Server, der für geschwindigkeitskritische Umgebungen entwickelt wurde. Diese Anleitung veranschaulicht, wie man Lighttpd auf einem Debian Etch Server mit PHP5 Unterstützung (durch FastCGI) und MySQL Unterstützung installieren kann.

Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Vorbemerkung

n dieser Anleitung verwende ich den Host Namen server1.example.com mit der IP Adresse 192.168.0.100. Diese Einstellung kann bei Dir anders sein, ersetze sie an den gegebenen Stellen.

2 Installation von MySQL 5.0

Zuerst installieren wir MySQL 5.0 wie folgt:

apt-get install mysql-server mysql-client

Erstelle ein Passwort für den MySQL Nutzer root (ersetze yourrootsqlpassword mit dem Passwort, das Du verwenden möchtest):

mysqladmin -u root password yourrootsqlpassword

Überprüfe mit

netstat -tap | grep mysql

auf welchen Adressen MySQL hört. Wenn die Ausgabe wie folgt aussieht:

tcp 0 0 localhost.localdo:mysql *:* LISTEN 2713/mysqld

was bedeutet, dass MySQL nur auf localhost.localdomain hört, dann bist Du mit dem Passwort, welches Du vorher eingerichtet hast, geschützt. Sieht die Ausgabe allerdings so aus:

tcp 0 0 *:mysql *:* LISTEN 2713/mysqld

solltest Du auch ein MySQL Passwort für Deinen Host Namen einrichten, denn sonst kann von Außen auf Deine Daten zugegriffen und sie bearbeitet werden:

mysqladmin -h server1.example.com -u root password yourrootsqlpassword


3 Installation von Lighttpd

Lighttpd ist als Debian Paket verfügbar, daher können wir es wie folgt installieren:

apt-get install lighttpd

Richte Deinen Browser auf http://192.168.0.100 aus; Du müsstest die Lighttpd Platzhalter Seite sehen:


Lighttpd's Standard Document Root ist /var/www auf Debian, die Konfigurationsdatei ist /etc/lighttpd/lighttpd.conf.

4 Installation von PHP5

Wir könnnen PHP5 in Lighttpd durch FastCGI wirksam werden lassen. Glücklicherweise bietet Debian ein FastCGI-aktiviertes PHP5 Paket, welches wir wie folgt installieren:

apt-get install php5-cgi


5 Konfiguration von Lighttpd und PHP5

Um PHP5 in Lighttpd zu aktivieren, müssen wir zwei Dateien bearbeiten /etc/php5/cgi/php.ini und /etc/lighttpd/lighttpd.conf. Zunächst öffen wir /etc/php5/cgi/php.ini und fügen die Zeile cgi.fix_pathinfo = 1 ganz am Ende der Datei hinzu:

vi /etc/php5/cgi/php.ini

[...]
cgi.fix_pathinfo = 1
Dann öffnen wir/etc/lighttpd/lighttpd.conf und fügen "mod_fastcgi", zur server.modules Zeile hinzu:

vi /etc/lighttpd/lighttpd.conf

[...]
server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_fastcgi", # "mod_rewrite", # "mod_redirect", # "mod_status", # "mod_evhost", # "mod_compress", # "mod_usertrack", # "mod_rrdtool", # "mod_webdav", # "mod_expire", # "mod_flv_streaming", # "mod_evasive" ) [...]
und dann ganz am Ende der Zeile fügen wir folgende Zeile hinzu:
[...]
fastcgi.server = ( ".php" => (( "bin-path" => "/usr/bin/php5-cgi", "socket" => "/tmp/php.socket" )))
Dann starten wir Lighttpd neu:

/etc/init.d/lighttpd restart

6 Testen von PHP5 / Einzelheiten über Deine PHP5 Installation in Erfahrung bringen

Der Document Root der Standard Website ist /var/www. Wir werden jetzt eine kleine PHP Dateifile (info.php) in diesem Verzeichnis erstellen und es in einem Browser abrufen. Die Datei wird viele nützliche Informationen über die PHP Installation anzeigen wie zum Beispiel die installierte PHP Version.

vi /var/www/info.php

<?php
phpinfo(); ?>
Nun rufen wir diese Datei in einem Browser (z.B. http://192.168.0.100/info.php) auf:


Wie Du siehst, funktioniert PHP5. Es läuft über FastCGI, wie man in der Server API Zeile sehen kann. Wenn Du weiter nach unten scrollst, siehst Du alle Module, die bereits in PHP5 aktiviert sind. MySQL ist dort nicht aufgelistet, was bedeutet, dass wir noch keine PHP5 Unterstützung haben.

7 MySQL Unterstützung in PHP5 beziehen

Um MySQL Unterstützung in PHP zu beziehen, können wir das php5-mysql Paket installieren. Es ist ganz gut noch andere PHP5 Module zu installieren, da Du diese für Deine Programme gebrauchen könntest. So kannst Du nach verfügbaren PHP5 Modulen suchen:

apt-cache search php5

Wähe diejenigen aus, die Du brauchst und installiere sie wie folgt:

apt-get install php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-json

Es kann sein, dass folgende Frage auftaucht:

Continue installing libc-client without Maildir support? <-- Yes
Starte Lighttpd jetzt neu:

/etc/init.d/lighttpd restart

(Wenn Du das Modul php5-json installiert hast und solche Warnungen erhältst wie diese:

PHP Warning: Module 'json' already loaded in Unknown on line 0

bedeutet das, dass das Modul zweimal geladen wurde. Öffne /etc/php5/cgi/php.ini, scroll runter ans Ende und kommentiere die Zeile extension=json.so aus:

vi /etc/php5/cgi/php.ini

[...]
;extension=json.so [...]
Starte dann Lighttpd neu:

/etc/init.d/lighttpd restart

Die Warnungen sollten verschwunden sein.)

Lade nun http://192.168.0.100/info.php in Deinen Browser und scroll runter zur Modulsektion. Du solltest dort viele neue Module finden, das MySQL Modul eingeschlossen:

8 Links