Lighttpd, PHP, MySQL
Juli 6th, 2010 FriedemannDies ist der erste Teil einer kleinen Serie, die sich mit der Installation und Konfiguration des Lighttpd auseinander setzen wird. In diesem ersten Tutorial werde ich beschreiben, wie Ihr den Lighttpd in Verbindung mit PHP5 im „CGI-Modus“ betreibt und wie ihr anschließend noch MySQL ins Spiel bringen könnt. Wie bei all‘ meinen bisherigen Linux-Tutorials gehe ich davon aus, dass ihr Ubuntu bei Euch installiert habt. Beginnen wir nun mit der Installation:
- Falls ihr noch Apache2 am Laufen haben solltet, könnt ihr ihn einfach mit
sudo /etc/init.d/apache2 stop
beenden. Falls ihr den Indianer komplett aus dem Autostart entfernen wollt: Versucht folgenden Befehl:
sudo update-rc.d -f apache2 remove
Nun sollte der Apache nicht mehr mit starten.
- Lighttpd installieren mit:
sudo apt-get install lighttpd
Nun sollte der Server unter http://deineip/ erreichbar sein 🙂
- Kümmern wir uns nun als erstes um eine rudimentäre PHP Unterstützung. Hierbei werde ich nur das php5-cgi installieren:
- Wenden wir uns nun MySQL zu. Zunächst installieren wir uns die benötigten Pakete mit
sudo apt-get install mysql-server mysql-client
Im Verlauf der Installation werdet ihr gebeten ein Passwort für den Root-Benutzer des MySQL-Servers zu setzen. Dieses sollte sich auf jeden Fall von dem Root-Kennwort des Servers unterscheiden!
- Nun muss nur noch das PHP-Modul für MySQL installiert werden. Ein flottes
sudo apt-get install php5-mysql
tut dies. Wenn ihr noch weitere PHP-Module installieren wollt, schaut euch mal an, was apt-get alles an PHP-Modulen anbietet:
apt-cache search php5
Es wird euch nun aufgelistet, welche Module zur Verfügung stehen. Installiert werden die Module analog zum MySQL-Modul:
1sudo apt-get install 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-common - Nun kann der Lighty neu gestartet werden:
sudo /etc/init.d/lighttpd restart
Sollte hierbei folgende Fehlermeldung erscheinen:
PHP Warning: Module ‚json‘ already loaded in Unknown on line 0
Dann bedeutet das, dass das JSON-Modul zwei mal geladen worden ist. Dieser Warnung kann man wie folgt entgegenwirken:
öffnet zuerst die /etc/php5/cgi/php.ini, sucht nach extension=json.so und kommentiert die entsprechende Zeile aus. Bei dem anschließendensudo /etc/init.d/lighttpd restart
sollte der Warnhinweis nicht mehr erscheinen.
- Ihr könnt die Einstellungen nun überprüfen, indem ihr folgendes in die Konsole eingebt:
echo "<?php phpinfo(); ?>" > /var/www/test.php
Wenn ihr nun auf http://eureip/test.php geht, seht ihr, welche PHP-Module geladen wurden. Darunter auch das MySQL-Modul:
- Das wäre es auch schon fürs Erste gewesen. Viel Spaß mit dem nun eingerichtetem Lighty!
sudo apt-get install php5-cgi
Nun müssen wir dem Lighty nur noch beibringen, dass er doch bitte PHP korrekt interpretieren soll, wenn eine .php-Datei vom Browser angefordert wird: Hierzu öffnen wir zuerst die PHP-Config-Datei mit einem
sudo nano /etc/php5/cgi/php.ini.
Nachdem diese Datei hoffentlich erfolgreich geöffnet wurde, suchen wir mit CTRL+W folgende Zeile: „cgi.fix_pathinfo=1“. Das „;“ am Anfang der Zeile entfernt Ihr brav und schon ist PHP fertig konfiguriert. Nun muss nano nur geschlossen und die Datei gespeichert werden.
Wenden wir uns nun dem Lighttpd zu: Öffnet zunächst die Datei
sudo nano /etc/lighttpd/lighttpd.conf
Unter „server.modules“ könnt ihr nun sehen, welche Module für den Lighttpd beim Start initialisiert werden. Ich werde auf das ein oder andere Modul sicherlich in einem meiner nächsten Tutorials eingehen. Zum jetzigen Zeitpunkt ist allerding nur das Modul mod_fastcgi für uns von Interesse. Fügt dieses einfach dem Array server.modules hinzu. Das ganze könnte nun so aussehen:
server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_compress", "mod_fastcgi" )
Damit wäre die Unterstützung von CGI aktiviert. Um nun noch sicher zu stellen, dass die PHP-Dateien auch verarbeitet werden, fügt einfach am Ende der Datei folgende Zeilen hinzu:
fastcgi.server = ( “.php” => (( “bin-path” => “/usr/bin/php5-cgi”, “socket” => “/tmp/php.socket” )))
Nun noch Datei abspeichern. Und fertig wären wir mit dem Lighty.
Leave a Reply