Sonntag, 27. September 2015

Raspberry Pi - Webserver installieren

Mit dieser Anleitung ist es möglich auf dem Raspberry PI einen Webserver (Lighttpd sowie PHP) zu  installieren. Diese funktioniert desweiteren auch mit Debian und Ubuntu ;-)

Der Grund für die Installation ist, dass ich in meinem Heim-Netzwerk grafisch aufbereitete Daten von meinem Temperatur Sensor (http://sebastianhemel.blogspot.de/2015/01/temperatursensor-ds18b20-raspberry-pi.html) bereitstellen möchte.

Mit Hilfe des Programms MRTG (Multi Router Traffic Grapher) und RRD (Round-Robin-Database) lassen sich unter Linux sehr schnell grafische Auswertungen und Darstellungen von Messwerten erstellen. Es können HTML Seiten mit Grafiken erstellt werden. Siehe https://sebastianhemel.blogspot.com/2016/01/raspberry-pi-monitoring-mit-mrtg-und.html .


Mit den folgenden Befehlen werden Lighttpd und PHP 5 mit CGI installiert:

sudo apt-get update
sudo apt-get install lighttpd

sudo apt-get install php5-common php5-cgi php5
sudo lighty-enable-mod fastcgi-php
sudo lighty-enable-mod cgi

Anschließend muss ein Neustart vom Webserver durchgeführt werden:
sudo service lighttpd force-reload

Damit wir jetzt auch CGI Scripe ausführen können muss noch der Passende Ordner erstellt werden und die Besitzrechte von /var/www übernommen werden.
sudo mkdir /var/www/cgi-bin
sudo chown -R www-data:www-data /var/www
sudo chmod 775 /var/www
Nach dem die Rechte gesetzt wurden muss noch der Pi Benutzer der www-data Gruppe hinzugefügt werden.
sudo usermod -a -G www-data pi
Jetzt muss noch die Datei 10-cgi.conf angepasst werden und die Zeile alias.url hinzugefügrt werden:
sudo nano /etc/lighttpd/conf-available/10-cgi.conf 
---
# /usr/share/doc/lighttpd/cgi.txt

server.modules += ( "mod_cgi" )

alias.url += ( "/cgi-bin/" => "/var/www/cgi-bin/" )

$HTTP["url"] =~ "/cgi-bin/" {...
Zum Abschluss muss der Webserver noch einmal neugestartet werden.
sudo service lighttpd force-reload
Jetzt sind die CGI-Skripte per Browser (http://IP-ADRESSE-PI/cgi-bin/hello-world.cgi ) erreichbar!

Download: hello-world.cgi
Hinweis: Mit chmod +x ausführbar machen, sonst gibt es den Fehler 500 (Internal Server Error) zu sehen. 

Evtl. weitere Einstellungen können in der Konfigurationsdatei 
/etc/lighttpd/lighttpd.conf 
server.document-root        = "/var/www"
vorgenommen werden.

2 Kommentare:

  1. Hi Sebastian, lighttpd läuft jetzt.
    Habe Deine 10-cgi.conf aus der Mail genommen und dann ging es.

    MRTG läuft jetzt auch wlan0 eth0 und fritzbox
    Danke nochmal

    AntwortenLöschen
  2. Danke für dein Feedback Carsten :-)

    Anbei noch mal der komplette Aufbauer der Datei "/etc/lighttpd/conf-available/10-cgi.conf"
    ---
    # /usr/share/doc/lighttpd/cgi.txt

    server.modules += ( "mod_cgi" )

    alias.url += ( "/cgi-bin/" => "/var/www/cgi-bin/" )

    $HTTP["url"] =~ "^/cgi-bin/" {
    cgi.assign = ( "" => "" )
    }

    ## Warning this represents a security risk, as it allow to execute any file ## with a .pl/.py even outside of /usr/lib/cgi-bin.
    #
    #cgi.assign = (
    # ".pl" => "/usr/bin/perl",
    # ".py" => "/usr/bin/python",
    #)
    ---

    AntwortenLöschen