Benutzer-Werkzeuge

Webseiten-Werkzeuge


raspberrypi:raspberry_pi_lighttpd_webserver

Raspberry Pi Lighttpd Webserver

(Dieser Artikel wurde am 28.09.2019 aktualisiert und befindet sich auf dem Stand von Raspbian Buster)

Ein Webserver ermöglicht es, verschiedene Inhalte im Internet oder lokal anderen Nutzern zur Verfügung zu stellen. Egal ob du einen Blog, ein Forum oder einen Shop erstellt möchtest, für die Realisierung benötigst du einen Webserver. Bei der Auswahl eines Webservers stehen mehrere zur Verfügung. Die gängigsten sind Apache und NginX (Engine X ausgesprochen). Ich hingegen beschränke mich in diesem Artikel auf den Webserver Lighttpd (ausgesprochen: Lighty). Zwar ist dieser Webserver nicht so oft im WWW vertreten, aber er macht auf dem Raspberry Pi am ehesten Sinn. Das liegt in erster Linie daran, weil Lighttpd sehr wenig Ressourcen im Vergleich zu anderen Webservern verbraucht. Beim Raspberry Pi, der ohnehin schon nicht so stark auf der Brust ist, dürfte dieser Faktor einer der Wichtigsten sein. Zudem ist der Webserver nicht überladen und recht einfach für Anfänger zu konfigurieren. Wenn du schon mal einen NginX oder Apache Webserver konfiguriert hast, weist du wovon ich spreche.

Nachfolgend ein Diagramm, welches die Marktanteile an Webservern darstellt (Stand: 26. September 2019)

Es gibt auch noch andere Alternativen wie:

  • Gunicorn - ein in Python geschriebener WSGI HTTP Server
  • Hiawatha - ein schlanker Webserver
  • Instant Webserver - verschiedene einfache Webserver zu Testzwecken und zum Datenaustausc
  • XAMPP - Webserver-Testumgebung, nicht für einen öffentlichen Webserver geeignet.

Einrichtung des Webservers Lighttpd

Du musst den Port 80 im Router auf den Raspberry Pi weiterleiten und öffnen. Ansonsten ist Dein Webserver nur im lokalen Netzwerk erreichbar und Du kannst nicht aus dem Internet darauf zugreifen. Wenn Du SSL nutzen möchtest, musst Du den Port 443 ebenfalls weiterleiten und öffnen. Wie Du ein SSL Zertifikat erstellst und in den Webserver einbindest, erfährst Du im Artikel SSL Zertifikat via Certbot. Doch zunächst solltest Du den Webserver komplett einrichten, bevor Du Dich mit der Erstellung und Einbindung eines SSL-Zertifikats beschäftigst!

Solltest Du keine Domain haben, welche später auf Deinen Webserver verweisen soll, benötigst Du noch eine DynDNS-Adresse.

Zuerst einmal aktualisierst du wie gewohnt das System:

sudo apt-get update && sudo apt-get upgrade

und anschließend installierst du den Webserver:

sudo apt-get install lighttpd

Um den Webserver zu testen, gibst du im Browser einfach die IP-Adresse des Raspberry Pi's ein. Anschließend solltest Du eine Testseite vom Lighttpd Server sehen können. Bei Raspbian Buster wird die Testseite nicht angelegt und die Fehlermeldung 403 Forbidden erscheint. In diesem Fall kannst du die Testseite auch von meinem FTP-Server herunterladen. Gib dazu in der Konsole folgendes ein:

cd /var/www/html/ && sudo wget https://kohta-pi.de/scripts/index.lighttpd.html && sudo mv index.lighttpd.html index.html

Die Dateien für die Webseite werden in den Ordner /var/www/html/ gelegt, es sei denn Du richtest weiter unten einen VHost ein. Dann kommen die Dateien in den Ordner, welchen Du bei der VHost-Konfiguration angibst.

PHP installieren

Damit PHP Seiten richtig verarbeitet und dargestellt werden können, musst du zuerst einmal PHP installieren:

sudo apt-get install php7.3 php7.3-cgi

Danach aktivierst du das FastCGI-Modul, sowie das FastCGI-PHP-Modul:

sudo lighty-enable-mod fastcgi && sudo lighty-enable-mod fastcgi-php

Nach den Änderungen startest du den Server neu:

sudo service lighttpd restart

Um zu testen, ob PHP funktioniert, erstellst du eine neue Datei mit dem Namen phpinfo.php im Ordner /var/www/html/

sudo nano /var/www/html/phpinfo.php

Mit folgendem Inhalt:

<?php  
phpinfo();  
?>

Speichere den Inhalt der Datei mit STRG + O und Enter und beende Nano mit STRG + X. Öffne die Datei im Browser über die Adresse http://ip-adresse-des-pi/phpinfo.php.

Lighttpd VHost anlegen

Es ist nicht zwingend nötig einen VHost anzulegen. Ich finde es aber angenehmer, wenn die Konfiguration in einer eigenen Datei ausgelagert wird. So müssen nicht alle Konfigurationen in die lighttpd.conf geschrieben werden, was nach einiger Zeit sehr unübersichtlich werden kann. Spätestens, wenn du ein zweites Projekt realisieren möchtest, kommst du an einem VHost ohnehin nicht vorbei. Im Grunde bringt die Einrichtung nur Vorteile, deswegen solltest du Sie umsetzen!

Zuerst aktivierst du das Modul für Virtuelle Hosts:

sudo lighty-enable-mod simple-vhost

Anschließend legst du eine neue Konfigurationsdatei für den virtuellen Host an:

sudo nano /etc/lighttpd/conf-available/webseitenname.conf

Ändere Webseitenname zu einem Namen deiner Wahl.

In diese Datei fügst du nun folgende Konfiguration ein:

$HTTP["host"] == "www.meineseite.de" { 
 
server.document-root = "/var/www/html/meineseite/" # Der Hauptpfad deiner Seite
accesslog.filename = "/var/log/lighttpd/meineseite.log" # Web Server Access Logfile
server.errorlog = "/var/log/lighttpd/meineseite.log" # Web Server Error Logfile
}

Passe in dieser Konfiguration folgende Stellen auf deine Gegebenheiten an:

  • $HTTP[„host“] == „www.meineseite.de“ {
  • server.document-root = „/var/www/html/meineseite/“ # Der Hauptpfad deiner Seite
  • accesslog.filename = „/var/log/lighttpd/meineseite.log“ # Web Server Access Logfile
  • server.errorlog = „/var/log/lighttpd/meineseite.log“ # Web Server Error Logfile

Beachte auch, dass der Ordner bei server.document-root existieren muss!

Speichere den Inhalt der Datei mit STRG + O und Enter und beende Nano mit STRG + X.

Nun machst du die Konfiguration mit einem symbolischen Link noch verfügbar.

sudo ln -s /etc/lighttpd/conf-available/webseitenname.conf /etc/lighttpd/conf-enabled/

Ein Neustart des Server und schon ist der VHost eingerichtet:

sudo service lighttpd restart

MySQL (MariaDB) installieren

MySQL ist eine Datenbank-Serveranwendung, welche es ermöglicht Datenbanken zu erstellen und zu verwalten. Viele Content-Management-Systeme wie Blogs, Foren ect. benutzen zum Beispiel Datenbanken zur Speicherung ihrer Daten. Solltest du keine Datenbanken benötigen, musst du MySQL und Adminer nicht zwingen installieren.

Um MySQL zu installieren, gibst du folgenden Befehl in der Konsole ein:

sudo apt-get install mariadb-server php7.3-mysql

Nach der Installation wird über ein Script die Einrichtung von MySQL vorgenommen. Dazu gibst du in der Konsole folgenden Befehl ein:

sudo mysql_secure_installation

Bei der Passwortabfrage drückst du einfach Enter und beantwortest die nachfolgenden Fragen. Dabei wird gleich ein neues Passwort für den Root Account von MariaDB gesetzt.

Logge dich als Root User in MariaDB ein:

sudo mysql -u root

Mit folgendem Befehl kannst du einen neuen Datenbankbenutzer anlegen:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';

Ersetze newuser und password durch den gewünschten Benutzernamen und Passwort!

Nun fügst dem Datenbankbenutzer noch das komplette Programm an Berechtigungen zu:

GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

Nicht vergessen, der Benutzer newuser wird durch deinen gewünschten Benutzernamen ersetzt!

Zu guter letzt musst du noch die Berechtigungen neu laden und MySQL beenden:

FLUSH PRIVILEGES; 
quit

Es gibt verschiedene Konfigurationsdateien für MariaDB:

  • „/etc/mysql/mariadb.cnf“ Um globale Standardwerte festzulegen.
  • „/etc/mysql/conf.d/*.cnf“ Um globale Optionen festzulegen.
  • „/etc/mysql/mariadb.conf.d/*.cnf“ Um MariaDB eigene Optionen festzulegen.
  • „~/.my.cnf“ Um benutzerspezifische Optionen festzulegen.

In den Konfigurationsdateien musst du eigentlich keine Änderungen mehr vornehmen. Ich erwähne Sie nur der Vollständigkeit halber.

Zuletzt startest du den MariaDB-Server, sowie den Webserver neu:

sudo service mariadb restart && sudo service lighttpd restart

Adminer installieren

Mit Adminer ist es möglich Datenbanken über eine grafische Oberfläche im Browser zu verwalten. So kannst du dir viel Arbeit auf der Shell ersparen und musst dich nicht mit etlichen MySQL Befehlen rumschlagen. Relativ bekannt ist auch das Tool phpMyAdmin. Unserer Meinung nach reicht aber für kleinere Projekte Adminer völlig aus. Zudem kommt es vollkommen ohne Konfiguration aus und besteht nur aus einer PHP Datei! Noch nicht überzeugt? Dann schau dir doch mal die Unterschiede zwischen PHPmyAdmin und Adminer

Zuerst einmal wird Adminer heruntergeladen:

cd /var/www/html/ && sudo wget https://github.com/vrana/adminer/releases/download/v4.7.3/adminer-4.7.3-de.php && sudo mv adminer-4.7.3-de.php mysql.php

Anschließend befindet sich die Oberfläche unter http://www.meineadresse.de/mysql.php und du kannst dich mit dem zuvor neu erstelltem User einloggen.

Cookies helfen bei der Bereitstellung von Inhalten. Diese Website verwendet Cookies. Mit der Nutzung der Website erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Computer gespeichert werden. Außerdem bestätigen Sie, dass Sie unsere Datenschutzerklärung gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website. Weitere Information
raspberrypi/raspberry_pi_lighttpd_webserver.txt · Zuletzt geändert: 2019/10/03 08:51 von 84.165.167.172