Lighttpd Webserver + PHP5 + MySQL Server unter Raspbian

  • Edit: Jetzt mit phpMyadmin ; getestet mit 2012-12-16-wheezy-raspbian.img
    Edit:Image zum Download bereit gestellt (siehe unten)


    Vorab solltest du die root Partition an die Größe deiner SD-Karte angleichen.

    Code
    sudo raspi-config


    expand_rootfs -> OK -> Finish -> Reboot


    1. Paketlisten aktualisieren

    Code
    sudo apt-get update


    2. Lighttpd, MySQL, PHP5 und phpMyAdmin installieren

    Code
    sudo apt-get install lighttpd php5-cgi mysql-server mysql-client phpmyadmin


    Konfiguration Mysql:

    • MySQL Password für den user "root" eingeben
    • MySQL Password für den user "root" wiederholen
    • Lighttpd zur Konfiguration auswählen


    Konfiguration phpMyAdmin

    • "Configure database for phpmyadmin with dbconfig-common?" -> YES
    • phpMyAdmin Passwort vergeben (wahlweise MySQL Password von vorhin)
    • MySQL Password von vorhin eingeben
    • MySQL Password von vorhin wiederholen


    Danach solltest du folgendes sehen, wenn du die IP deines RPI aufrufst.

    Lighttpd's root Verzeichnis ist /var/www
    Die Konfigurationsdatei findest du unter /etc/lighttpd/lighttpd.conf


    3. PHP5 konfigurieren

    Code
    sudo nano /etc/php5/cgi/php.ini


    An das Ende der Datei folgendes anfügen

    Code
    cgi.fix_pathinfo = 1


    Kleiner Tipp: Mit STRG + V blätterst du schnell nach unten


    Nun noch "mod_fastcgi" Modul eintragen

    Code
    sudo nano /etc/lighttpd/lighttpd.conf


    So sollte es aussehen

    Code
    server.modules = (
    "mod_fastcgi",
    "mod_access",
    "mod_alias",
    "mod_compress",
    "mod_redirect",
    # "mod_rewrite",
    )


    Zuletzt noch am Ende der Datei "lighttpd.conf" das fastcgi Modul einfügen und die phpmyadmin Konfiguration


    Code
    fastcgi.server = ( ".php" => ((
    "bin-path" => "/usr/bin/php5-cgi",
    "socket" => "/tmp/php.socket"
    )))
    include "phpmyadmin.conf"


    Wir benutzten fastcgi zum parsen, da es im Gegensatz zum normalen cgi mehr Performance liefert


    Danach muss mit diesem Befehl noch phpMyAdmin aktiviert werden


    Code
    sudo cp /etc/phpmyadmin/lighttpd.conf /etc/lighttpd/phpmyadmin.conf



    4. lighttpd neustarten

    Code
    sudo /etc/init.d/lighttpd restart


    5. lighttpd testen
    Nun testen wir die Installation indem wir uns die phpinfo anzeigen lassen. Dazu erstellen wir einen Datei auf dem Server wie folgt.


    Wir die Datei info.php

    Code
    sudo nano /var/www/info.php


    Mit dem Nano Editor schreiben wir nun folgenden Text in die Datei


    Wir haben uns für diese wichtigsten Pakete entschieden und installieren diese nun.

    Code
    sudo apt-get install php5-mysql 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-json


    7. lighttpd neustarten

    Code
    sudo /etc/init.d/lighttpd restart


    8. Installation testen
    Nun öffne die Datei über deinen Browser: http://192.168.0.108/info.php


    MySQL ist nun von PHP5 unterstützt



    Nun läuft dein Performance Webserver auf Basis von lighttpd und FastCGI.


    [hr]
    Webserver Image Download


    Ich habe einen Server aufgesetzt und als Image bereit gestellt:
    2012-12-16-wheezy-raspbian

    • 8GB Image
    • PHP5
    • MySQL Server
    • phpMyAdmin
    • lighttpd


    Benutzername: pi
    Passwort: raspberry
    MySQL / phpMyAdmin Benutzername: root
    MySQL / phpMyAdmin Passwort: raspberrypiforum


    config.txt

    • gpu_mem=16
    • arm_freq=900


    Benutzung des Images auf eigene Gefahr! Ich übernehme keine Verantwortung für eventuell entstehende Schäden
    Download: forum-raspberrypi.de/attachment/328/





    Wenn du Fragen und/oder Verbesserungsvorschläge hast, zögere nicht diese unter diesem Beitrag zu stellen.
    Über ein kurzes Feedback, ob es geklappt hat würde ich mich auch sehr freuen!

    Images

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

    Edited once, last by ps915 ().

  • Hallo
    wie kann ich den zb. den pfad für die Daten auf zum beispiel auf einen USB Speicher oder eine Externe Festplatte legen?


    LG

  • Das ist leider nicht möglich! Falls es dir darum geht bequem die Dateien hochzuladen bzw zu ändern kannst du entweder einen FTP-Server oder einen Samba Server installieren.

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

  • Also wenn er die httpdocs meint also die PHP files usw die kann er hinlegen wo er mag. das kann man in der lighthttp.conf einstellen wo der ordner dafür sein soll.


    Entschuldigt wenn ich etwas falsch verstanden habe


    server.document-root = "/var/www/"


    hier kannst du jeden pfad in deinem system angeben, allerdings musst du darauf achten das der
    Webserver auf diesen pfad lese und schreibrechte hat.


    server.document-root = "/mnt/deineexterne/webserver"

  • Schreibe doch bitte dazu unter welchem Punkt er es ändern kann!

    Well in my humble opinion, of course without offending anyone who thinks differently from my point of view, but also by looking into this matter in a different way and without fighting and by trying to make it clear and by considering each and every one's opinion, I honestly believe that I completely forgot what I was going to say.

  • der Benutzer unter dem Lighttpd läuft (glaube ist auch www-data) hat bestimmt keine rechte die PHP Scripte aus zu führen probiere es mal mit

    Code
    sudo chmod 0755 -R /var/www
  • das war die Lösung vielen dank


    Edit:


    Nun wollte ich PCC kopieren per ftp und ich bekomme diesmal den fehler

    Code
    (18:38:38) [T] 257 "/home/pi"
    (18:38:38) [T]     MKD /var/www/pcc
    (18:38:38) [T] 550 Create directory operation failed.
    (18:38:38) [T]     CWD /var/www/pcc
    (18:38:38) [T] 550 Failed to change directory.
    (18:38:38) [T] (Benutzer hat Verbindung getrennt)

    Edited once, last by Fr34k ().

  • Code

    Hallo,
    hat gut geklappt alles.


    Ich bekomme leider beim info.php ein "403 Forbidden"


    Code
    sudo chmod 0755 -R /var/www


    half da auch nicht.


    Grüße


    Jörg

  • gib mal auf der Kommandozeile folgenden Befehl ein:

    Code
    sudo chown www-data -R /var/www/


    Damit setzt du für alle Dateien die im Server Root liegen den Benutzer www-data als Besitzer.

  • Hi,


    also ich hatte zuerst nur lighttpd, php und mysql installiert. Php nicht, weil es irgendwie nicht funktioniert hat, weiß nun nicht mehr welchen Fehler ich dabei bekommen habe.


    So, nun wollte ich Phpmyadmin einfach nachinstallieren, allerdings hat das auch nicht funktioniert.


    Ich habe nun einfach alles deinstalliert und wollte das nun nochmal neu installieren und nun bekomme ich folgende Fehlermeldung, wobei das Passwort zu 100% richtig ist.


    Paketkonfiguration




    folgendes habe ich eingegeben:

    Code
    sudo apt-get --purge remove lighttpd* php* mysql* phpmyadmin*
    sudo apt-get autoremove
    sudo reboot
    sudo apt-get update
    sudo apt-get install lighttpd php5-cgi mysql-server mysql-client phpmyadmin


    mich wundert es, weil ich bei der installation nicht viel falsch machen kann, vertippt habe ich mich nicht, habe ein wirklich sehr einfaches passwort angegeben, wollte das später erst ändern.


    edit:
    also wenn ich bei der installation bei dem Punkt "Configure database for phpmyadmin with dbconfig-common?" auf NO setze, dann bekomme ich bei der installation zumindest kein Fehler mehr, allerdings beim einloggen ins phpmyadmin ein 500internal error und wenn ich die configs bearbeite und dann lighttpd neustarten möchte, bekomme ich diese fehlemeldung

    Quote

    sudo /etc/init.d/lighttpd restart
    Duplicate config variable in conditional 0 global: fastcgi.server
    2013-02-13 23:47:21: (configfile.c.943) source: /etc/lighttpd/lighttpd.conf line: 35 pos: 8 parser failed somehow near here: (EOL)

    Edited once, last by logan517 ().

  • Moin logan517,


    Deine Fehlermeldung in der "line 35 pos 8 near (EOL)" etc ist bei mir genauso. Hast Du mittlerweile eine Lösung erreicht?!


    zum Tutorial: mit apache (anderes Tutorial) hat es sofort geklappt. an lighttpd interessiert mich eher, der wenige Speicherbedarf. Aber leider ist bei mir die Luft raus bei Punkt 4 : sudo /etc/init.d/lighttpd restart" bricht ab mit der gleichen Meldund von logan.


    Sorry, ich sehe den Baum vor lauter Wald einfach nicht.


    danke für ein weiteres unter die Arme greifen.


    nachtzleben

  • Hi,


    erst einmal danke für das Tutorial. Ich konnte den Webserver nun einrichten, leider komme ich nicht auf phpmyadmin, es kommt immer ein 404-Fehler. In welchem Verzeichnis ist das denn nun drin?


    Sonst zum Tutorial:


    Müssen die Konfigurationen bezüglich fastcgi denn sein? Reicht nicht ein

    Code
    sudo lighty-enable-mod fastcgi


    ?


    Im Übrigen: Das Kopieren der .conf-Datei halte ich ebenfalls nicht für sinnvoll. Besser wäre:


    Code
    sudo ln -s /etc/phpmyadmin/lighttpd.conf /etc/lighttpd/phpmyadmin.conf
  • Habe das selbe Problem:


    Code
    pi@raspberrypi /var/www $ sudo /etc/init.d/lighttpd restart
    Duplicate config variable in conditional 0 global: fastcgi.server
    2013-03-22 13:59:15: (configfile.c.943) source: /etc/lighttpd/lighttpd.conf line: 35 pos: 8 parser failed somehow near here: (EOL)





    kann mir jemand helfen bzw. sagen wo mein Fehler ist?

  • Um den Zugriff auf PhpMyAdmin von extern zu sperren muss folgende Änderung vorgenommen werden:


    1. sudo nano /etc/lighttpd/phpmyadmin.conf
    2.Folgendes ergänzen. Bei der IP Adresse wird die komplette Range 192.168.178.0 - 192.168.178.255 erlaubt.

    Code
    $HTTP["remoteip"] !~ "192.168.178." {
    $HTTP["url"] =~ "^/phpsysinfo" {
     url.access-deny = ( "" )
     }
    }


    3. STRG + O zum speichern, STRG + X zum Nano beenden
    4. sudo /etc/init.d/lighttpd restart

    Code
    [ ok ] Stopping web server: lighttpd.
    [ ok ] Starting web server: lighttpd.


    5. Testen


  • Man hätte ja noch erwähnen können von wem das kam.....

    Offizieller Schmier und Schmutzfink des Forum.
    Warum einfach wenn's auch schwer geht ?


    Kein Support per PN !
    Fragen bitte hier im Forum stellen. So hat jeder etwas davon.

  • Hallo,


    habe versucht nach Deiner Anleitung lighttp auf meinem PI zu installieren.


    Beim restart von lighttp erhalte ich folgende Fehlermeldung:


    root@raspberrypi:~# /etc/init.d/lighttpd restart
    Duplicate config variable in conditional 0 global: fastcgi.server
    2013-05-02 09:38:03: (configfile.c.943) source: /etc/lighttpd/lighttpd.conf line: 34 pos: 8 parser failed somehow near here: (EOL)
    root@raspberrypi:~#


    Die info.php kann nich angeschaut werden: FORBIDDEN
    Der Ordner /var/www hat Root-Rechte ( 0755 ) ???


    Was muss ich noch ändern, damit es läuft ?


    Danke für Info


    Gruss
    Bodo


  • Ich schließe mich hiermit an. Habe exakt das selbe Fehlerbild.
    Weis wer Rat?

  • Hallo fly,


    Quote

    /etc/lighttpd/lighttpd.conf line: 34 pos: 8 parser failed somehow near here: (EOL)


    Hast du dir schonmal die genannte Konfigurationsdatei angesehen? Scheinbar ist da ein Syntaxfehler in der Zeile 34 an Position 8 (am Zeilenende).


    Gruß Georg