Installation von Lighttpd mit PHP5 und MySQL Unterstützung auf Fedora 7

Version 1.0
Author: Falko Timme


Lighttpd ist ein sicherer, schneller Standardkonformer Web Server, der für Umgebungen mit hohen Leistungsanforderungen entwickelt worden ist. Diese Anleitung veranschaulicht, wie Lighttpd auf einem Fedora 7 Server mit PHP5 Unterstützung (durch FastCGI) und MySQL Unterstützung installiert werden kann.

Ich übernehme keinerlei Garantie, dass dies funktionieren wird!

1 Vorbemerkung

In dieser Anleitung habe ich den Hostnamen server1.example.com mit der IP Adresse 192.168.0.100 verwendet. Diese Einstellungen können sich von Deinen unterscheiden, Du musst sie also entsprechend ersetzen.

2 Installation von MySQL 5.0

Zuerst installieren wir MySQL 5.0 wie folgt:

yum install mysql mysql-server

Dann erstellen wir die System Startup Links für MySQL (sodass MySQL jedes Mal automatisch startet wenn das System hochfährt) und starten den MySQL Server:

chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start

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

mysqladmin -u root password yourrootsqlpassword

Überprüfe dann mit

netstat -tap | grep mysql

auf welcher Adresse MySQL läuft. Sieht die Ausgabe wie folgt aus:

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

was bedeutet, dass MySQL nur auf localhost.localdomain läuft, dann ist das Passwort von eben ausreichend. Sieht die Ausgabe allerdings so aus:

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

solltest Du auch ein MySQL Passwort für Deinen Hostnamen erstellen, da sonst jeder auf Deine Datenbank zugreifen und Daten verändern kann:

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


3 Installation von Lighttpd

Lighttpd ist als Fedora Packet verfügbar. Daher können wir es wie folgt installieren:

yum install lighttpd

Dann erstellen wir die System Startup Links für Lighttpd (sodass Lighttpd jedes Mal automatisch startet, wenn das System hochfährt) und starten es:

chkconfig --levels 235 lighttpd on
/etc/init.d/lighttpd start

Lenke Deinen Browser jetzt zu http://192.168.0.100 . Du solltest jetzt die Lighttpd Platzhalterseite sehen:


Lighttpds Standard document root ist /srv/www/lighttpd auf Fedora. Die Konfigurationsdatei ist /etc/lighttpd/lighttpd.conf.

4 Installation von PHP5

Wir können veranlassen, dass PHP5 in Lighttpd mittels FastCGI läuft. Dafür installieren wir Packete lighttpd-fastcgi und php-cli:

yum install lighttpd-fastcgi php-cli


5 Konfiguration von Lighttpd und PHP5

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

vi /etc/php.ini

[...]
cgi.fix_pathinfo = 1
Dann öffnen wir /etc/lighttpd/lighttpd.conf und aktivieren diese Zeile "mod_fastcgi", in der server.modules Zeile:

vi /etc/lighttpd/lighttpd.conf

[...]
server.modules = ( # "mod_rewrite", # "mod_redirect", # "mod_alias", "mod_access", # "mod_cml", # "mod_trigger_b4_dl", # "mod_auth", # "mod_status", # "mod_setenv", "mod_fastcgi", # "mod_proxy", # "mod_simple_vhost", # "mod_evhost", # "mod_userdir", # "mod_cgi", # "mod_compress", # "mod_ssi", # "mod_usertrack", # "mod_expire", # "mod_secdownload", # "mod_rrdtool", "mod_accesslog" ) [...]
weiter unten sehen wir eine fastcgi.server Zeile, die wir auch auktivieren:
[...]
#### fastcgi module ## read fastcgi.txt for more info ## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini fastcgi.server = ( ".php" => ( "localhost" => ( "socket" => "/var/run/lighttpd/php-fastcgi.socket", "bin-path" => "/usr/bin/php-cgi" ) ) ) [...]
Dann starten wir Lighttpd erneut:

/etc/init.d/lighttpd restart


6 Testen von PHP5 / Sammeln von Informationen über die Installation von PHP5

Der document root der Standardseite ist /srv/www/lighttpd. Wir werden jetzt in disem Verzeichnis eine kleine PHP Datei erstellen und sie in einem Browser öffnen. Die Datei wird viele nützliche Informationen über die PHP Installation anzeigen, wie zum Beispiel die installierte PHP Version.

vi /srv/www/lighttpd/info.php

<?php
phpinfo(); ?>
Nun öffnen wir diese Daei im Browser (z.B. http://192.168.0.100/info.php):


Wie man sehen kann, läuft PHP 5 mittels FastCGI, wie in der Zeile Server API angezeigt wird. Wenn Du weiter runter scrollst, siehst Du alle Module, die bereits in PHP5 aktiviert sind. MySQL ist nicht aufgelistet, was bedeutet, dass wir noch keine MySQL Unterstützung für PHP5 haben.

7 MySQL Unterstützung für PHP5

Um MySQL Unterstützung für PHP zu bekommen, können wir das php-mysql Packet installieren. Es ist keine schlechte Idee einige andere PHP Module mit zu installieren, da Du sie vielleicht für Deine Anwendungen brauchst. So kannst Du für verfügbare PHP5 Module suchen:

yum search php

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

yum install php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc

Starte Lighttpd jetzt erneut:

/etc/init.d/lighttpd restart

Lade erneut http://192.168.0.100/info.php in Deinen Browser und gehe scrolle wieder runter zum Modulteil. Jetzt müsstes Du viele neue Module angezeigt sehen, auch das MySQL Modul:

8 Links

Copyright © 2007 Falko Timme