Installation von Lighttpd Mit PHP5 Und MySQL Unterstützung Auf Mandriva 2008.0

Version 1.0
Author: Falko Timme


Lighttpd it ein sicherer, schneller Web Server, der dem Standard entspricht und für geschwindigkeitskritische Umgebungen entwickelt worden ist. Diese Anleitung veranschaulicht, wie man Lighttpd auf einem Mandriva 2008.0 Server mit PHP5 Unterstützung (durch FastCGI) und MySQL Unterstützung installiert.

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

1 Vorbemerkung

In dieser Anleitung verwende ich den Hostnamen server1.example.com mit der IP Adresse 192.168.0.100. Diese Einstellungen werden von Deinen abweichen, also musst Du sie an ensprechender Stelle ersetzen.

2 Installation von MySQL 5.0

Zunächst installieren wir MySQL 5.0 wie folgt:

urpmi MySQL MySQL-client

Im Mandriva 2008 MySQL Paket ist der Netzwerkbetrieb nicht aktiviert. Wir ändern dies indem wir die Zeile skip-networking in /etc/my.cnf auskommentieren.

vi /etc/my.cnf
[...]
# Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking [...]
Danach starten wir MySQL:

/etc/init.d/mysqld start

Überprüfe nun ob der Netzwerkbetrieb aktiviert ist. Führe Folgendes aus

netstat -tap | grep mysql

Die Ausgabe sollte wie folgt aussehen:

[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql-im *:* LISTEN 4393/mysqlmanager
tcp 0 0 *:mysql *:* LISTEN 4399/mysqld
[root@server1 ~]#

Lass als Nächstes Folgendes laufen

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

um das Passwort für den Benutzer root einzurichten (sonst kann jeder auf Deine MySQL Datenbank zugreifen!).

3 Installation von Lighttpd

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

urpmi lighttpd

Wenn bei Dir Apache bereits installiert ist, solltest Du es nun beenden und die Startup links des Apache Systems entfernen, damit es Lighttpd nicht beeinflusst (Du kannst folgende Befehle auch laufen lassen, wenn Du nicht weißt, ob Du Apache installiert hast):

/etc/init.d/httpd stop
chkconfig httpd off

Dann starten wir Lighttpd:

/etc/init.d/lighttpd start

Lenke Deinen Browser zu http://192.168.0.100. Du müsstest Die Mandriva Platzhalterseite sehen, die von Lighttpd bedient wird:


Lighttpds Standard-Dokumenten root auf Mandriva ist /var/www/html, die Konfigurationsdatei ist /etc/lighttpd/lighttpd.conf.

4 Installation von PHP5

Wir können veranlassen, dass PHP5 in Lighttpd über FastCGI läuft. Daher installieren wir das Paket php-fcgi:

urpmi php-fcgi

5 Konfiguration von Lighttpd und PHP5

Um PHP5 in Lighttpd frei zu schalten, müssen wir zwei Dateien bearbeiten /etc/php.ini und /etc/lighttpd/lighttpd.conf. Zuerst öffnen wir die Datei /etc/php.ini und setzen cgi.fix_pathinfo auf 1:

vi /etc/php.ini
[...]
; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok ; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting ; this to 1 will cause PHP CGI to fix it's paths to conform to the spec. A setting ; of zero causes PHP to behave as before. Default is 1. You should fix your scripts ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. cgi.fix_pathinfo=1 [...]
Dann öffnen wir die Datei /etc/lighttpd/lighttpd.conf und aktivieren "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" ) [...]
dann, weiter unten in der Datei befindet sich die fastcgi.server Zeile, die wir auch aktiviere; weiterhin bearbeiten wir die Zeile bin-path wie folgt:
[...]
#### 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-fcgi" ) ) ) [...]
Die socket Zeile hat den Wert /var/run/lighttpd/php-fastcgi.socket, das Verzeichnis /var/run/lighttpd hingegen existiert noch nicht, daher erstellen wir es jetzt:

mkdir /var/run/lighttpd

Dann starten wir Lighttpd neu:

/etc/init.d/lighttpd restart

6 Testen von PHP5 / Angaben über Deine PHP5 Installation beziehen

Der Dokumenten root der Standard-Web Site ist /var/www/html. Wir werden nun eine kleine PHP Datei (info.php) in diesem Verzeichnis anlegen und sie in einem Browser öffnen. Die Datei wird uns viele wertvolle Informationen über unsere PHP Installation liefern, wie zum Beispiel über die installierte PHP Version.

vi /var/www/html/info.php
<?php
phpinfo(); ?>
Nun öffnen wir diese Datei in einem Browser (z.B. http://192.168.0.100/info.php):


Wie Du siehst, läuft PHP5 über FastCGI, wie es in der Server API Zeile angezeigt wird. Wenn Du weiter runter scrollst, siehst Du alle Module, die bereits in PHP5 aktiviert sind. MySQL ist dort nicht aufgeführt, was bedeutet, dass wir noch keine MySQL Unterstützung in PHP5 haben.

7 MySQL Unterstützung In PHP5 beziehen

Um MySQL Unterstützung in PHP zu beziehen, können wir das Paket php-mysql installieren. Es empfiehlt sich noch ein paar andere PHP5 Module zu installieren, Du könntest sie für Deinen Anwendungen benötigen. So kannst Du nach verfügbaren PHP5 Modulen suchen:

urpmi --fuzzy php

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

urpmi php-mysql php-mysqli php-bz2 php-calendar php-ctype php-curl php-devel php-dio php-dom php-eaccelerator php-enchant php-esmtp php-event php-exif php-fam php-ffmpeg php-fileinfo php-filepro php-ftp php-gd php-gettext php-gmp php-iconv php-id3 php-idn php-imap php-imlib2 php-mailparse php-mbstring php-mcache php-mcrypt php-mhash php-ming php-ncurses php-newt php-odbc php-oggvorbis php-pam_auth php-pcntl php-pcre php-pear-Net_IDNA php-posix php-pspell php-readline php-recode php-session php-shmop php-simplexml php-snmp php-soap php-sockets php-sqlite php-ssh2 php-suhosin php-sysvmsg php-sysvsem php-sysvshm php-tclink php-tcpwrap php-tidy php-xml php-xmlrpc php-zip php-ini

Starte Lighttpd neu:

/etc/init.d/lighttpd restart

Lade http://192.168.0.100/info.php in Deinem Browser neu und scrolle runter zum Modulabschnitt. Du solltest nun viele neue Module angezeigt sehen, inklusive das MySQL Modul:

8 Links

0 Kommentar(e)

Zum Posten von Kommentaren bitte