Let’s Encrypt

Beim Einrichten eines SSL-Zertifikats mittels Let’s Encrypt kann der ACME Server eine bestimmte Datei im Ordner .well-known/acme-challenge nicht erreichen. Zertifikate, dienen der Sicherheit und dem Datenschutz, machen den Webentwicklern und Softwareentwicklern aber auch immer wieder das Leben schwer. In meinem Fall war es folgende Problemstellung, die mich ein paar Stunden Recherche und Fehlersuche kostete.

weiterlesen

Server auf Raspberry Pi einrichten

In den voran gegangenen Artikeln hatte ich beschrieben, wie man die Ersten Schritte mit dem Raspberry Pi unternimmt und wie man sich einen Fernzugriff einrichten kann. Hier soll nun eine kurze Anleitung folgen, wie man auf dem Raspberry Pi einen Server installiert.

Mit Kanonen auf Spatzen

Installiert werden soll die Grundausstattung als LAMP-Server (Linux, Apache, MySQL, PHP). Der eine oder andere mag jetzt denken ‘das arme kleine Teil! Da gibt’s doch leichtere Server-Alternativen!’  Aber wir geben uns die volle Dröhnung.

System – Update durchführen

Die meisten Dokus empfehlen erst einmal ein System-Update zu machen. Normalerweise würde ich sagen ein Update kann nicht schaden, aber mit solchen Aussagen sollte man vorsichtig sein.  Das Update führen wir mit folgenden Befehlen durch:

pi@raspberrypi ~ $ sudo apt-get update    
pi@raspberrypi ~ $ sudo apt-get upgrade 

Und nach jedem Update empfiehlt sich natürlich ein Neustart per

pi@raspberrypi ~ $ sudo reboot                 

Benutzer und Gruppe anlegen

Für unseren Serverdienst legen wir nun noch den Benutzer und die Gruppe www-data an und weisen den Benutzer der Gruppe per usermod zu. In den meisten Fällen wird der Benutzer schon existieren.

pi@raspberrypi ~ $ sudo useradd www-data                                
pi@raspberrypi ~ $ sudo groupadd www-date                             
pi@raspberrypi ~ $ sudo usermod -a -G www-data www-data  

Wer mehr über Benutzer und Gruppen unter Linux wissen möchte, findet bei ubuntuusers.de eine recht gute Erläuterung.

Installation von Apache, PHP und MySQL

Mit dem Kommando

pi@raspberrypi ~ $ sudo apt-get install apache2        

wird das Apache2 – Paket geholt und installiert um anschließend mit den Befehlen

pi@raspberrypi ~ $ sudo apt-get install php5              
pi@raspberrypi ~ $ sudo apt-get install php5-mysql  

PHP5 und PHP5-MySQL zu installieren. PHP5-MySQL enthält die Libraries für den Zugriff auf die MySQL-Datenbanken. Wer will, installiert sich noch zusätzlich PHP5-XCache, was die Ausführung von PHP–Seiten beschleunigt, da nach einmaliger Interpretation der PHP–Seite der Binärcode (PHP-Opcode) im Cache gehalten wird und somit nicht bei jedem neuen Aufruf der Interpreter neu bemüht werden muss.

pi@raspberrypi ~ $ sudo apt-get install php5-xchache  

Nun noch den My-SQL-Server installieren. Während der Installation wird man dann noch aufgefordert ein Passwort für den MySQL-Root-User zu vergeben, was empfohlen wird, aber nicht zwingend erforderlich ist.

pi@raspberrypi ~ $ sudo apt-get install mysql-server  

Und wer seine Datenbanken lieber über den Browser administriert installiert sich noch phpmyadmin:

pi@raspberrypi ~ $ sudo apt-get install phpmyadmin   

Bei der Installation kommen dann noch ein paar Zwischenfragen, wie ggf. für welchen WebServer phpmyadmin eingerichtet werden soll sowie zur Datenbank – Einrichtung.

Jetzt noch testen

Als erstes Testen wir mit der standardmäßig bei der Installation angelegten index.html Datei. Zuvor nehmen wir aber eine kleine Änderung mit dem Nano – Editor vor, mit welchem man auf Konsolenebene Textdateien anschauen und bearbeiten kann. Dieser Schritt ist nicht unbedingt nötig; wir machen es einfach, weil wir es können:

pi@raspberrypi ~ $ sudo nano /var/www/index.html  

nanoeditor

In meinem Fall habe ich mal ein “Hura! Es geht” eingefügt. Jetzt rufen wir nur noch mit der uns vom Raspberry bekannten IP-Adresse die Seite auf und staunen, dass es funktioniert!

browser_index

PHP testen wir indem wir uns mit dem Nano – Editor eine kleine php – Datei anlegen und diese dann aufrufen:

pi@raspberrypi ~ $ sudo nano /var/www/info.php   

nano_phpinfo

browser_infophp

Nun fehlt noch der Test zum Aufruf von phpMyAdmin. Das hat nicht auf Anhieb geklappt und ist erst mal fehlgeschlagen. Ursache ist, dass in der Apache-Konfig-Datei ein entsprechender Verweis fehlt. Also öffnet man z.B. wieder mittels Nano die Datei

/etc/apache2/apache2.conf

und fügt dort folgende Zeile ein:

Include /etc/phpmyadmin/apache.conf

Und nun noch phpMyAdmin im Browser aufrufen und sich freuen dass alles geht.

browser_phpmyadmin