Raspberry Pi – Nginx Webserver installieren

Nginx WebserverDa der Raspberry Pi bekannter-
maßen nicht der schnellste unter den Einplatinen Rechnern ist, sollte man sich bereits bei der Auswahl der zu installierenden Programme Gedanken um die zukünftige Nutzbarkeit machen. Aus diesem Grunde werde ich anstatt auf den Apache Webserver zu setzen den Nginx Webserver  (gesprochen „engine x“) installieren.

Nginx ist ein extrem schneller und leichtgewichtiger, modular aufgebauter Webserver der selbst unter Last nur wenige Resourcen benötigt.

Nginx Webserver installieren

Server starten

Nun zum testen „http://192.168.178.22“ in den Browser eingeben. Hier sollten Sie natürlich die IP unter der Ihr Raspberry im Netz bekannt ist angeben. Es sollte eine Seite wie „Welcome to nginx on Debian!“ zu sehen sein.

 

MySQL installieren

Wärend der Installation erscheint ein blaues Fenster in dem man nun ein sicheres Passwort für den Root Nutzer der MySQL Datenbank vergeben sollte. Geben Sie dieses Passwort zweimal ein.

mysqlrootpasswort

 

PHP installieren

Damit die MySQL Datenbank aus PHP heraus genutzt werden kann muss noch folgendes Paket installiert werden

PHP beschleunigen wir indem wir folgendes Paket installieren. Dieses sorgt dafür dass bereits kompilierte PHP Seiten im cache gespeichert und beim Bedarf erneut daraus aufgerufen werden können.

 

Nginx Webserver konfigurieren

Damit PHP nun mit dem Nginx Webserver genutzt werden kann müssen wir nun einige Anpassungen in der Datei /etc/nginx/sites-available/default vornehmen.

Wenn Sie eine Datei mit vim öffnen, drücken Sie als erstes die Taste „i“ um in den Einfügemodus zu wechseln.
Nehmen Sie nun Ihre Änderungen vor. Wenn Sie fertig sind drücken Sie die Taste „ESC“ um den Einfügemodus zu verlassen.
Drücken Sie anschließend die Taste „:“, „W“ und „Q“ gefolgt von der „Enter“ Taste.

Hinweis
: = Eingabe von Befehlen
W = Speichern der Änderungen
Q = Verlassen des Editors

In der Datei „/etc/php5/fpm/php.ini“ muss ein Wert angepasst werden.
Rufen Sie also folgenden Befehl auf

Die zeile cgi.fix_pathinfo=1 muss geändert werden zu cgi.fix_pathinfo=0
Damit wir nun nicht ewig lange nach der richtigen Stelle suchen müssen, drücken wir die „ESC-Taste“ und geben anschließend folgendes ein.

Hinweis
/ = Suchen
Der Wert der hinter dem Slash ist der Suchbegriff.

Drücken Sie nun die „Enter-Taste“ um zur gefundenen Stelle zu springen.
Drücken Sie die Taste „i“ um in den Einfügemodus zu wechseln und ändern Sie die 1 zu 0 wie oben angegeben.
Drücken Sie die Taste „ESC“ um den Einfügemodus zu beenden.
Drücken Sie die Taste „:“, „W“ und „Q“ zum Speichern und anschließenden verlassen des Editors.

Nun starten wir den Service PHP5-FPM mit folgendem Befehl neu

Jetzt legen wir testhalber eine php Datei an bevor wir dem Server beibringen dass er diese neben htm und html Dateien ebenfalls interpretieren soll.

Drücken Sie wieder die Taste „i“ zum einfügen und geben Sie folgendes ein!

Drücken Sie anschließend wie schon zuvor angegeben die „ESC-Taste“ gefolgt
von den Tasten „:“, „w“ und „q“.

Anschließend öffnen wir erneut die Datei „/etc/nginx/sites-available/default“ um die notwendigen Anpassungen vorzunehmen.

Ich ändere hier nun die Zeile

und füge den Eintrag index.php hinzu

Den folgenden Block

ändern wir zu

 

Nginx-Webserver neu starten

Nun kann man die zuvor erstellte Datei „phpinfo.php“ aufrufen indem man die IP des Servers gefolgt von phpinfo.php in den Browser eingibt.
Wenn jetzt nur eine weiße Seite angezeigt wird, müssen wir noch einen weiteren Schritt unternehmen. Der Fehler tritt übrigens auf, weil eine wichtige fastcgi-Variable in der Standard Konfiguration fehlt.

Geben Sie dazu folgenden Befehl ein.

Am Ende der Datei fügen wir folgende Zeile ein.

Webserver neu starten

Wenn Sie die Datei phpinfo.php nun im Browser aufrufen sollte diese ordnungsgemäß angezeigt werden.

 

SSL-Zertifikat erstellen

Geben Sie die drei Befehle nacheinander ein.

Im Laufe der Erzeugung des SSL-Zertifikates werden einige Daten abgefragt.
Wichtig ist hierbei die Angabe unter Common Name wo der Domainname der zu sichernden Seite eingegeben werden sollte.

Nun wurden im Verzeichnis „/etc/nginx/ssl“ die folgenden beiden Dateien erzeugt.
profwebapps.cloud.csr
profwebapps.cloud.key

Signieren des selbst erstellten Zertifikates

Jetzt wurde die Datei „profwebapps.cloud.crt“ erzeugt
Das erzeugte Zertifikat ist 730 Tage, also 2 Jahre gültig.

 

SSL-Zertifikat in Nginx Webserver einbinden

Meine bereinigte Datei „/etc/nginx/sites-available/default“ sieht jetzt so aus
Alle Anfragen auf Port 80 (HTTP) werden nach Port 443 (HTTPS) umgeleitet.
Das bedeutet, wenn die Seite mit http oder nur mit www aufgerufen wird, dann wird diese jedesmal nach https:// umgeleitet.
Es wird also immer die, durch das SSL-Zertifikat gesicherte Seite aufgerufen.

Erfahren Sie im nächsten Teil, wie Sie phpMyAdmin mit Nginx nutzen und phpMyAdmin dabei vor Angriffen von aussen absichern können.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentare geschlossen.