Der Webserver Lighttpd gilt als besonders Leichtgewichtig und daher wie geschaffen für den Raspberry Pi. In diesem Tutorial installiere ich Lighttpd auf einem Raspberry Pi2, wobei diese Anleitung ebenfalls auf den Raspberry Pi3 angewendet werden kann.
Um einen Webserver auch sinnvoll nutzen zu können installieren wir natürlich auch PHP und MySQL mit phpMyAdmin. Als Basis nutzen wir wieder eine Installation von Raspian
, alternativ könnte man für einen reinen Webserver auch Raspian Lite
benutzen.
Die Installation von Raspian habe ich in diesem Artikel schon behandelt und werde in diesem Artikel nicht mehr näher darauf eingehen. Bei der Installation einfach das aktuellste Image benutzen!
Nachdem dieser Schritt erledigt ist, können wir mit der Installation des Webservers Lighttpd beginnen. Wir können dies wieder entweder direkt am Raspberry Pi oder per SSH zB über Putty erledigen. Falls in die Desktopoberfläche gebootet wurde könnte man das auch noch per Remote erledigen.
Lighttpd
sudo apt-get install lighttpd
Danach können wir Lighttpd auch schon testen, indem wir in unserem Webbrowser die IP-Adresse des Raspberry’s aufrufen zB 192.168.1.50
PHP
Ohne PHP wären wir auf reine statische Inhalte gebunden, um flexibler zu sein installieren wir es nach.
sudo apt-get install php5-common php5-cgi php5
Lighttpd soll auch PHP ausführen können.
sudo lighty-enable-mod fastcgi-php
Empfehlung der Placeholder Seite von Lighttpd
sudo lighty-enable-mod cgi sudo lighty-enable-mod userdir
Lighttpd neuladen
sudo /etc/init.d/lighttpd force-reload
oder Alternativ
sudo service lighttpd force-reload
Um danach gleich mal PHP testen zu können legen wir im Webroot die Datei info.php
an. Mit
sudo nano /var/www/html/info.php
erstellen wir die Datei und fügen
<?php phpinfo(); ?>
als Inhalt hinzu und speichern die Datei anschließend. Über die Konsole mit folgender Tastenkombination:
STRG + X -> Y -> ENTER
Die erstellte info.php
Datei können wir natürlich anschließend im Browser aufrufen und uns davon überzeugen, dass PHP funktioniert.
Genauso wie in diesem Tutorial können wir auch hier wieder einen eigenen Benutzer anlegen, mit dem wir die Dateien für den Webserver verwalten.
sudo useradd -o -u 33 -g 33 -d /var/www -M webuser
Das Passwort für den angelegten Benutzer vergeben mit:
sudo passwd webuser
Den Webroot noch übernehmen
sudo chown -R www-data:www-data /var/www/html
Zusätzliche PHP Bibliotheken
Je nachdem welche Software wir auf dem Webserver verwenden wollen, kann es möglich sein, zusätzliche PHP Bibliotheken zu installieren. Mit
sudo apt-get install php5-curl php5-gd
können wir dann auch Rainloop bzw. das datenbanklose CMS GetSimple unter Lighttpd nutzen.
SQlite
Nicht immer ist gleich eine MySQL-Datenbank nötig. Oft hat man auch mit SQlite sein auslangen. SQlite könnten wir mit folgendem Befehl installieren.
sudo apt-get install sqlite3 php5-sqlite
Zur besseren Verwaltung von SQlite-Datenbanken kann ich phpLiteAdmin
sehr empfehlen. Wie man zB auch WordPress mit SQlite betreiben könnte, können sie hier nachlesen.
MySQL und phpMyAdmin
Nicht jede Anwendung ist auch SQlite kompatibel. MySQL und zur besseren Verwaltung davon phpMyAdmin können wir mit folgenden Befehlen nachinstallieren.
sudo apt-get install mysql-server mysql-client php5-mysql phpmyadmin
Während der Einrichtung müssen wir noch das Passwort für den MySQL Benutzer „root“ festlegen und Lighttpd als Webserver auswählen.
Die Frage „Configure database for phpmyadmin with dbconfig-common
“ beantworten noch mit „No
„.
Die wesentlichen Dinge des Webservers sind nun eingerichtet und es wird an der Zeit den Raspberry Pi mal neu zu starten.
sudo reboot
Eventuelle zusätzliche Einstellungen
Um zB den Serverport zu ändern müsste man die Datei lighttpd.conf bearbeiten.
sudo nano /etc/lighttpd/lighttpd.conf
Damit die Änderungen wirksam werden entweder wieder den Raspberry neustarten oder zumindest den Webserver Lighttpd
sudo /etc/init.d/lighttpd restart
Eventuelle PHP-Einstellungen ändert man in der php.ini, zB memory_limit, upload_max_filesize, post_max_size …
sudo nano /etc/php5/cgi/php.ini
Auch schönere URL lassen sich mit mod_rewrite realisieren. Ein paar Links zu diesem Thema.
https://www.guyrutenberg.com/2008/05/24/clean-urls-permalinks-for-wordpress-on-lighttpd/
http://virtual.berrydejager.com/how-to-fix-the-wordpress-permalinks-when-using-lighttpd/
http://tenabletechtips.com/2013/03/18/rewriting-urls-for-wordpress-with-lighttpd/
http://blog.forret.com/2007/03/15/urlrewrite-for-wordpress-on-lighttpd/
http://www.queryadmin.com/758/lighttpd-rewrite-rules-wordpress-sites/
Geschwindigkeit von Lighttpd gegenüber von Apache
Ich habe sowohl auf Apache als auch auf Lighttpd jeweils WordPress, Rainloop, GetSimple und OwnCloud getestet. Einen spürbaren Unterschied zwischen den beiden Webservern konnte ich nicht feststellen.
Also habe ich mir die Mühe gemacht unter Linux einen Apache Benchmark durchzuführen. Dabei habe ich folgende Befehle im Terminal ausgeführt.
ab -n 100 -c 5 http://192.168.1.50/test.jpg ab -n 1000 -c 50 http://192.168.1.50/test.jpg ab -n 10000 -c 100 http://192.168.1.50/test.jpg
Das Ergebnis war zumindest in meinem Fall ernüchternd. Die Transferrate und die Requests pro Sekunde waren bei beiden Webservern annähernd identisch. Dabei wurde bei beiden Test exakt die gleiche Hardware verwendet – gleicher Laptop, gleicher Raspberry Pi, gleiche SD-Karte etc.
Verwendet wurde das Raspberry Pi2 Modell. Es mag sein, dass es sich beim Pi1 oder Pi3 anders verhält. Auch eine andere SD-Karte könnte das Ergebnis schon wieder komplett anders aussehen lassen, in meinem Fall eine Sandisk Ultra 32GB Class 10.
Von der Verwaltung her ist mir persönlich der Apache lieber, aber das ist reine Geschmackssache.
Bitte beachten Sie, dass dieser Beitrag bereits vor über einem Jahr geschrieben wurde und unter umständen nicht mehr aktuell ist.