Raspberry Pi und Nginx – Teil 1
Der Raspberry Pi kann für die unterschiedlichsten Dinge verwendet werden, einer der Hauptaufgaben ist jedoch als Webserver. Die meisten Raspberry Pi Benutzer haben einen Web Server laufen. Damit kann man heutzutage einfach am meisten anfangen und über HTTP kann man am einfachsten und schnellsten mit dem Pi kommunizieren. Nachdem ich bereits gezeigt habe wie man einen Apache und einen Lighttpd Web Server installiert ist nun Nginx an der Reihe.
Installation
In diesem Tutorial wollen wir Nginx installieren und darauf PHP Skripte laufen lassen. Diese Anforderung ist die einfachste und üblichste Konfiguration für Web Server. Die installation ist wie immer denkbar einfach:
sudo apt-get install nginx
Solltet Ihr noch aus vorangegangenen Tutorials einen anderen Web Server laufen haben, so ist nun ein guter Zeitpunkt diesen zu beenden. Folgende Zeilen kann man sicherheitshalber ausführen, auch wenn doch kein Web Server läuft:
sudo service apache2 stop sudo service lighttpd stop
Die erste Zeile würde den Apache Web Server stoppen, die zweite Zeile den Lighttpd Server. Gestartet wird nun Nginx mit folgendem Kommando:
sudo service nginx start
Konfiguration
In vielen Foren und Beträgen ließt man, dass die Konfiguration von Nginx sehr kompliziert und schwierig ist. Sie ist gewöhnungsbedürftig, aber nicht schwierig! Ein großes Verständnisproblem für viele ist, dass der Nginx Webserver seinen Content nicht wie bei anderen Servern üblich aus dem /var/www. Dieser Ordner existiert nicht (außer man hat vorher schon einen anderen Webserver laufen gehabt), dann bei Nginx liegt der Webinhalt unter:
/usr/share/nginx/www
Wir haben nun 2 Möglichkeiten:
- wir verwenden dieses Verzeichnis für unsere Webapplikationen und Webseiten oder
- wir konfigurieren Nginx so, dass er das /var/www Verzeichnis verwendet.
neuer Webroot
Das Webverzeichnis lässt sich sehr einfach ändern. Nginx erlaubt genau so wie auch Apache, dass man mehrere Domains auf einem Server mittels virtuelle Hosts verwaltet. Im Verzeichnis /etc/nginx gibt es dazu die Ordner sites-available und sites-enabled. Diese Aufteilung ist equivalent zur Konfiguration von Apache, das heißt unter sites-available legen wir pro virtuellen Host eine Konfigurationsdatei an. Wollen wir nun dass dieser Host auch über den Webserver erreichbar ist, so brauchen wir lediglich eine Kopie oder eine Verknüpfung der Konfigurationsdatei in den Ordner sites-enabled kopieren und den Server neu starten.
Bei einem neu installierten Nginx findet man bereits eine Standardkonfiguration unter /etc/nginx/sites-available. Diese ist in der Datei default zu finden mit jede Menge Kommentare. Wir erstellen uns einen neuen Host:
sudo nano testsite
mit folgendem Inhalt:
server { listen 80; root /var/www; index index.html index.htm; }
Das ist die minimalste Konfiguration die möglich ist! Unser Host soll auf den Port 80 hören (der Standard HTTP Port), /var/www als Hauptverzeichnis nutzen und wenn kein genauer Pfad angegeben wird standardmäßig die index.html oder index.htm Datei ausgeben. Jetzt müssen wir nur noch einen Link im sites-enabled Ordner erstellen und den Webserver neu starten:
cd /etc/nginx/sites-enabled sudo ln -s ../sites-available/testsite sudo rm default sudo service nginx restart
Ab jetzt liefert der Webserver die HTML Seiten aus dem gewohnten Webverzeichnis aus.
Hallo Werner,
besten Dank für den Blog. Ich habe schon lange einen einfachen Server gesucht, um meine Homepage auf dem Raspi auszuprobieren, der auch noch durch Module erweitert werden kann. Leider funktioniert das ganze nur im Originalzustand, die vorgeschlagenen Veränderungen zum Verschieben der Speicherdatei funktionieren leiden nicht. Auch mein Versuch, das wwww-Verzeichnis in /home/pi/ zu betreiben führte nicht zum Erfolg. Kannst Du das mal untersuchen. Die Testsite ist in auf der /Home/pi-Seite lesbar, aber nach der Verschiebung nicht mehr. Ursache?
Beste Grüße
Gerd
wie sind denn die Zugriffsrechte bei dem Ordner eingestellt?
Hallo Werner,
ich habe keine Rechte verändert, sondern nur Deine Vorgaben abgearbeitet bzw. sinngemäß meine Änderungen in die Testsite eingefügt.
Beste Grüße
Gerd