RasPi Series {10} – Was ist php7 und wie installiere ich es?

Wir werden lernen, was Dynamische Webseiten sind und php7.3 auf unseren Raspberry Pi installieren

    Inhaltsangabe
  1. Was ist php?
    1. Was sind dynamische Antworten?
  2. php7 installieren
  3. Nginx für php7 konfigurieren
    1. php7 testen

Im letzten Beitrag haben wir gelernt, was ein Webserver ist, was es macht und wie es funktioniert. Anschließend haben wir die nginx Webserver Software installiert und es getestet.

Aktuell ist unser Raspberry Pi über einen Webbrowser zugänglich und kann den Besuchern eine statische Webseite anzeigen lassen. Von einer statischen Webseite verstehen wir, dass keine Informationen von unserem Raspberry Pi aus verarbeitet werden können. Jeder Besucher bekommt den selben Inhalt angezeigt. Genau da kommt php ins Spiel.

Was ist php?

Wir hatten gesagt, dass ein Webserver folgendermaßen arbeitet:

Ein PC (Client) kommt zu einer Art Grenzkontrolle (Server), nennt sein Anliegen (Request) und gibt alle seine Unterlagen (Header) ab. Der Server schaut sich die Unterlagen an und gibt eine Antwort.

Wenn es sich um eine statische Webseite (html) handelt, ist der Server „Dumm“ und kann immer nur dieselbe Antwort geben. Damit die Informationen verarbeitet werden können und eine Dynamische Antwort gegeben werden kann, benötigen wir php.

php Seiten erfordern eine eigene Dateiart und zwar .php Dateien. Hier drin können HTML Ausgaben mit dynamischen Inhalten generiert werden.

Was sind dynamische Antworten?

Eine dynamische Antwort ist eine Antwort, die vorher vom Server verarbeitet wird. Bei der Verarbeitung nimmt der Server die Informationen, die du ihm mitgeliefert hast und arbeitet mit diesen.

Ein Beispiel für eine dynamische Anzeige ist die Anzeige deines Namens und deines Profilbildes auf den sozialen Medien. Das bedeutet, dass alles was angezeigt wird, auf dich zugeschnitten sein kann. Es können auch bestimmte Inhalte für Benutzer erlaubt und für andere verboten werden.

Wir wollen am Ende dieses Projektes eine Cloud aufsetzen und dort müssen Benutzer angelegt und verwaltet werden können. Diese Verwaltung übernimmt der php-Server. Auch die Verwaltung, ob die Dateien in der Cloud öffentlich zugänglich oder privat sein sollen, werden vom php-Server bestimmt.

php7 installieren

Wir verbinden uns per SSH (MobaXterm) mit unserem Raspberry Pi und geben folgendes in die Konsole ein:

sudo apt-get install php7.3-common php7.3-fpm php7.3-cli php7.3-json php7.3-mysql php7.3-curl php7.3-intl php-pear php7.3-gd php7.3-zip php7.3-xml php7.3-mbstring

Dadurch wird php 7.3 samt allen nötigen Komponenten installiert. Zu der Zeit des Beitrages (25.08.2019) ist php 7.3 die aktuellste Version.

Nginx für php7 konfigurieren

Nachdem die Installation abgeschlossen ist, müssen wir nginx sagen, dass unser Webserver von nun an mit php arbeiten soll und wo wir php installiert haben. Um solche und andre Konfigurationen durchzuführen, bietet uns nginx, Konfigurationsdateien an, in denen wir unsere gewünschte Konfiguration eintragen oder die bestehende Konfiguration bearbeiten können.

In unserem Fall, müssen wir nur eine Datei anpassen und zwar die Standardkonfiguration, die für alle Domains angewandt wird. Zur bearbeitung dieser Datei geben wir in die Konsole (MobaXterm) ein:

sudo nano /etc/nginx/sites-available/default

In dieser Datei müssen wir folgenden Block finden und es so anpassen, dass es wie im nachfolgenden angezeigt wird:

# pass PHP scripts to FastCGI server
#
#location ~ \.php$ {
#	include snippets/fastcgi-php.conf;
#
#	# With php-fpm (or other unix sockets):
#	fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
#	# With php-cgi (or other tcp sockets):
#	fastcgi_pass 127.0.0.1:9000;
#}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
	include snippets/fastcgi-php.conf;
#
#	# With php-fpm (or other unix sockets):
	fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
#	# With php-cgi (or other tcp sockets):
#	fastcgi_pass 127.0.0.1:9000;
}

Durch diese Änderung haben wir die php-Skripte aktiviert und unserem Server gesagt, wo unsere php-Installation liegt. Als nächstes werden wir das aufrufen von php-Dateien aktivieren und dazu machen wir in der selben Datei folgende Änderung:

# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
 # Add index.php to the list if you are using PHP
 index index.php index.html index.htm; 

Sobald das auch übernommen wurde, schließen wir die Datei (Strg + X) und bestätigen unsere Änderungen. Nach dieser Veränderung der Konfigurationsdatei ist unser Webserver bereit zur Ausführung von php-Skripten. Damit die Änderungen gültig werden und wir es testen können, starten wir noch unseren Webserver und unseren php-Server mit folgendem Befehl neu:

sudo /etc/init.d/php7.3-fpm reload && sudo /etc/init.d/nginx reload

php7 testen

Um zu testen, ob php von unserem Webserver (nginx) geladen wird, müssen wir eine php-Datei erstellen und dort einen Befehl ausführen, der uns alle Informationen zu unserem php Server anzeigt. Die Datei erstellen wir mit folgendem Befehl in der Konsole:

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

Es öffnet sich der Editor. Dort geben wir folgendes ein:

<?php phpinfo(); ?>

Wir schließen wir die Datei (Strg + X) und bestätigen die Änderung. Danach geben wir in unserem Browser die Adresse des Pi’s mit einem /phpinfo.php hinter der Adresse ein. In meinem Fall wäre das die Adresse http://raspi-series.ddns.net/phpinfo.php. Dort müsste euch folgendes angezeigt werden:

Wenn ihr das seht, habt ihr php7 erfolgreich installiert und könnt von nun an Dynamische Webseiten hosten.

Wir haben jetzt gelernt, was php ist und wozu es gut ist. Zudem haben wir php7.3 auf unseren Raspberry Pi installiert und von unserem Pi bestätigt bekommen, dass diese ohne Probleme funktioniert. Als nächstes werden wir uns anschauen, was Datenbanken sind und wir werden eine Datenbank (MariaDB) auf unseren Raspberry Pi installieren.

Themen

DIY nginx php Programmieren Raspberry Pi Technik

Beitrag teilen

WhatsAppen

Folgen Sie uns