… time flies like an arrow. fruit flies like a banana.

Lighttpd, PHP, MySQL

Juli 6th, 2010 Friedemann

Dies 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:

  1. 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.

  2. Lighttpd installieren mit:
    sudo apt-get install lighttpd

    Nun sollte der Server unter http://deineip/ erreichbar sein :-)

  3. Kümmern wir uns nun als erstes um eine rudimentäre PHP Unterstützung. Hierbei werde ich nur das php5-cgi installieren:
  4. 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.

  5. 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!

  6. 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:

    1
    sudo 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
  7. 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ßenden

    sudo /etc/init.d/lighttpd restart

    sollte der Warnhinweis nicht mehr erscheinen.

  8. 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:

  9. Das wäre es auch schon fürs Erste gewesen. Viel Spaß mit dem nun eingerichtetem Lighty!

Leave a Reply