Installation von Lighttpd Mit PHP5 Und MySQL Unterstützung Auf Mandriva 2008.0
Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot] com>
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
- Lighttpd: http://www.lighttpd.net
- PHP: http://www.php.net
- MySQL: http://www.mysql.com
- Mandriva: http://www.mandriva.com