Raspberry Pi – Apache 2 Webserver mit PHP7, MySQL & PhpMyAdmin

12. Jul. 2018

Raspberry Pi - Apache 2 Webserver mit PHP7, MySQL & PhpMyAdmin

Für eines meiner nächsten Projekte benötige ich einen Computer mit Webserver der 24/7 laufen kann. Da ich noch einen Raspberry Pi 2 B rumliegen habe möchte ich diesen dafür nutzen und nun zeigen, wie ich einen Webserver mit PHP7 installiert habe.

Vorbereitung

(optional)

Zunächst einmal braucht der Raspberry Pi ein Betriebssystem. Da ich unter Linux ein absoluter Anfänger bin habe ich mich für Raspbian entschieden. Dieses habe ich auf die SD-Karte installiert und in den Raspberry gesteckt. Ein ausführliches Tutorial, welches ich hilfreich fand ist dieses. Um anschließend auf den Raspberry Pi zugreifen zu können gibt es 3 Möglichkeiten:

  1. Kommandozeile auf dem Raspberry Pi
  2. LAN & Putty
  3. WLAN & Putty

Option 2 & 3 sind besonders dann geeignet, wenn ihr keine Maus, Tastatur oder einen Bildschirm für den Raspberry Pi habt.

Um Option 2 & 3 nutzen zu können müsst ihr zunächst ssh aktivieren. Dies ist ganz einfach möglich, indem ihr eine leere Datei mit dem Namen ssh auf der Boot Partition der SD-Karte speichert. Wichtig ist, dass diese Datei keine Dateiendung hat. Genaueres kann man auch hier nachlesen. 
Um WLAN nutzen zu können gibt es auch noch einen Trick, welcher hier nachzulesen ist.

Ist der Raspberry Pi nun endlich mit dem Internet verbunden kann Putty (oder ein anderer SSH Client) auf eurem PC geöffnet werden und eine SSH Verbindung zum Raspberry Pi aufgebaut werden. Die IP des Raspberry Pi könnt ihr entweder aus eurem Router auslesen oder die App von fing.io verwenden.

Bei der Frage nach einem Benutzername müssen die folgenden Daten eingegeben werden (sofern noch nicht geändert):
Benutzername: pi
Passwort: raspberry

Anschließend sollte unbedingt das Passwort geändert werden!

 sudo passwd pi

Anschließend habe ich einen xrdp Server installiert, damit ich auch ohne Display auf die Benutzeroberfläche des Pi’s zugreifen kann. Mit

sudo apt-get install xrdp

wird der Server installiert und mit dem unter Windows vorinstalliertem Windows Remote Desktop und der IP des Pi’s kann man das ganze nutzen.

wichtig

Nun geht es um das grundsätzliche Einrichten des Pi’s. Alle nachfolgenden Kommandos können entweder über die SSH Verbindung oder direkt in der Kommandozeile am Raspberry Pi ausgeführt werden.

Zunächst einmal mit

sudo apt-get update

die neusten Updates laden.

Server installieren

Nun kann es aber wirklich mit der eigentlichen Serverinstallation losgehen. Schließt die Remote-Desktop-Verbindung wieder und öffnet die Verbindung per Putty.

Tippt nun die folgenden zwei Zeilen:

sudo groupadd www-data
sudo usermod -a -G www-data www-data

anschließend muss eine neue Programmquelle hinzugefügt werden, da PHP7 noch nicht direkt für den Raspberry Pi verfügbar ist.

Öffnet dazu mit folgendem Befehl die Datei sources.list

sudo nano /etc/apt/sources.list

und fügt unter dem ersten Eintrag

deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi

hinzu. Mit strg + o kann man die Änderungen speichern und mit strg + x den Editor wieder verlassen

Damit jetzt nicht alle Programme aus dieser Quelle geladen werden muss noch folgendes getan werden:

sudo nano /etc/apt/preferences

ausführen und die folgenden Zeilen einfügen:

Package: *
Pin: release n=jessie
Pin-Priority: 600

Nun führen wir noch einmal

sudo apt-get update

aus und beginnen mit der Installation von Apache2.

Apache 2 installieren

Um nun Apache 2 zu installieren müsst ihr lediglich folgenden Befehl eingeben:

sudo apt-get install -t stretch apache2 -y

PHP 7 installieren

Auch PHP 7 lässt sich nun mit nur zwei Befehlen installieren.

sudo apt-get install -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-json php7.0-mbstring php7.0-xml php7.0-zip php7.0-mysql -y
sudo apt-get install -t stretch libapache2-mod-php7.0 -y

Um zu testen ob euer Server nun läuft und PHP 7 korrekt installiert ist könnt ihr folgendermaßen eine Testdatei erstellen:

Erstellt und öffnet eine neue Datei im Root-Ordner eures Server (/etc/www/http/)

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

und fügt die folgende Zeilen ein:

<?php echo "server is online </br>"; phpinfo(); ?>

Wenn ihr nun von einem beliebigen Gerät in eurem Netzwerk die URL http://[IP-eures-Pis]/info.php aufruft solltet ihr oben die Meldung sehen, dass der Server online ist und anschließend einige Informationen zu eurer Installation. Dort steht dann auch irgendwo, dass ihr PHP7 nutzt.

Jetzt starten wir den Pi zur Sicherheit noch einmal neu

sudo reboot

und fahren mit der Installation von MySQL fort.

MySQL installieren

Um MySQL zu installieren müsst ihr nur den folgenden Befehl eingeben und während der Installation ein Passwort wählen.

sudo apt-get install -t stretch mysql-server mysql-client -y

phpMyAdmin installieren (Update vom 08.10.2017)

Die Installation von phpMyAdmin get mitlerweile  auch ganz einfach mit dem Befehl 

sudo apt-get install -t stretch phpmyadmin -y

Während der Installation müsst ihr per Pfeiltasten apache2 ansteuern, mit Leertaste markieren und mit Enter bestätigen. Anschließend ist dann noch dem Installationsprozess der Datenbank zu folgen und schon seit ihr fertig.

Bonus: Zugriff auf den Pi per SFTP

Übrigens kann man per SFTP auch sehr leicht auf die Dateien des Pi’s zugreifen. Dazu muss lediglich SSH aktiviert sein, welches Standardmäßig eh aktiviert ist und wir hier die ganze Zeit verwendet haben. Der Einfachheit halber lege ich jetzt nur noch einen neuen Nutzer an, welcher den Serverroot als Home-Verzeichnis hat und kann anschließend SFTP per FireFTP in Firefox oder über andere kompatible Programme nutzen.

sudo adduser piftp --no-create-home
sudo usermod -G www-data piftp
sudo usermod -d /var/www/html/ piftp
sudo chown piftp:www-data -R /var/www/html
sudo chmod 775 -R /var/www/html

Quellen

Für dieses Tutorial habe ich sämtliches Wissen aus den folgenden Quellen erlernt. Bei Unklarheiten kann gerne eine Frage im Kommentarbereich gestellt werden oder bei den quellen nachgeschlagen werden.

Außerdem erhalte ich regelmäßig E-Mails von euch Lesern, welche mir wirklich helfen diesen Artikel aktuell zu halten. Vielen Dank an dieser Stelle! Falls euch noch ein Fehler auffällt: einfach eine Nachricht an mich senden.

Hier bitte Trinkgeld einwerfen!

Kommentare laden