Raspberry Pi – Apache 2 Webserver mit PHP7, MySQL & PhpMyAdmin
12. Jul. 2018
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:
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.
Kommentare laden