Skip to main content

Die Umgebung von PHP

Hallo Welt! Testen und Konfigurieren einer lokalen Entwicklungsumgebung
Der Hintergrund

Fragt man ChatGPT, was PHP sei, wird schon im ersten Satz erklärt: "PHP steht für 'Hypertext Preprocessor' und ist eine weit verbreitete serverseitige Skriptsprache, die hauptsächlich für die Webentwicklung verwendet wird." Der Begriff "Serverseitige Skriptsprache" beschreibt auch einen grossen Unterschied zur Skriptsprache JavaScript, welche im Browser ausgeführt wird und direkt, also zur Betrachtungszeit durch den Besucher, auf das DOM einfluss nehmen kann. PHP nimmt auch Einfluss auf das DOM, jedoch bevor es im Browser überhaupt ankommt. Eine konsequenz davon ist also, dass für die Entwicklung von PHP ein Server, genauer: ein Webserver, notwendig ist. Hierzu richten wir uns einen lokalen Entwicklungsserver ein.

Warum wir nicht auf einem "echten" Webserver entwickeln

Webserver sind Computer, welche mit Webserver-Software wie Apache ausgestattet sind, und primär darauf ausgelegt sind, angefragte Webseiten oder Daten auszuliefern. Hosting-Anbieter vermieten Webspacepakete, welche schon dafür konfiguriert sind und von ihnen gewartet werden - wir müssen unsere Webseiten lediglich hochladen und mit einem Domainnamen verknüpfen. Aus Sicherheitsgründen deaktivieren Webhoster jedoch alle Funktionen, mit denen man die Dateistruktur und allfällige Fehler sehen kann, denn dies sind Wertvolle Informationen für Hacker. Deshalb richten wir uns einen lokalen Testserver ein, wo wir folgende Vorteile nutzen können: 

  1. Directory Listing: Wir können uns beim Aufruf eines Ordners die Dateistruktur als Links ausgeben lassen - ein wirklich praktisches Feature, um durch die Files auf dem Server zu navigieren.
  2. Display Errors / Error Reporting: Wir können uns alle Fehlerlevel ausgeben lassen und finden unsere Fehler so viel einfacher.
  3. Offline: Wir brauchen keine Internetverbindung, weil der Server sich auf unserem Rechner befindet
  4. Sandbox: Wir müssen uns ganz allgemein keine Gedanken über die Sicherheit oder Zugriffe von aussen machen, ausser uns kann niemand unsere unfertige Arbeit sehen

So geht's

Eine Testumgebung einrichten

  1. Lade dir die neueste Version von XAMPP (für Windows) oder MAMPP (für Mac) herunter und führe den Installer aus. Auf Windows/XAMPP: wichtig für diesen Kurs ist vor Allem Apache, PHP und MySQL. Der FileZilla Server und Fake SendMail sind nicht zwingend erforderlich.
  2. Starte die App "xampp-control.exe" im XAMPP Ordner (Windows) oder die MAMP App (Mac), und starte darin den Server (Windows: Apache starten).
  3. Finde nun deinen Webroot im Finder/Explorer. Dieser befindet sich im XAMPP / MAMP Ordner und heisst normalerweise "htdocs". (Mac: Wenn du unsicher bist, kannst du in der XAMPP Konfiguration unter Webroot den Pfad nachschauen). Im Ordner Webroot befindet sich eine Datei namens "index.php" - du kannst sie umbenennen oder löschen, damit du beim Aufruf deines Webservers vom Directory Listing profitieren kannst (wenn keine Index-Datei gefunden wird, werden die Dateien und Ordner im Webroot aufgelistet)
  4. Zum Test kannst du ein Hallo Welt Skript erstellen und im Webroot speichern unter dem Namen "hallowelt.php":
    <?php 
    echo "Hallo Welt";
    ?>
  5. Rufe nun in deinem Browser den URL zum lokalen Testserver auf. Normalerweise ist dieser http://localhost, wenn du jedoch einen andern Port als 80 für HTTP definiert hast, oder jetzt feststellst, dass der URL nicht zum Ziel führt, überprüfe die Ports. Unter dem URL "localhost" solltest du nun die Datei "hallowelt.php" sehen und kannst diese anklicken. 

 

PHP.INI - Fehlerausgabe sicherstellen

In PHP stehen zwei Einstellungen zur Verfügung, mit denen Hinweise bei Codefehlern konfiguriert werden können. Wir benötigen die Fehleranzeige beim Testen unserern Skripte, weil wir sonst den ganzen Code durchlesen und selbst untersuchen müssen, um einfache Schreibfehler zu finden. EInstellungen zum Verhalten des PHP Parsers finden sich in der Datei PHP.INI

  1. Lege im Webroot eine PHP Datei mit namen "info.php" ab. Die Datei sollte folgenden Code enthalten:
    <?php 
    phpinfo();
    ?>
  2. Rufe nun in deinem Browser den URL zum lokalen Testserver auf. Es wird die gesamte PHP Konfiguration angezeigt, die momentan benutzt wird. 
  3. Finde auf dieser Seite den Pfad zur PHP.INI (Du kannst mit der Browsersuche nach "php.ini" suchen). Öffne nun diesen Pfad, um die PHP Konfiguration anzupassen. 
  4. Suche in der PHP.INI nun nach folgenden beiden Begriffen (wichtig: finde eine Zeile OHNE Semikolon davor, das Semikolon bedeutet, dass die Zeile auskommentiert und nicht aktiv ist), und stelle sicher, dass sie die hier angezeigten Werte haben.
    1. display_errors=on - Fehleranzeige "einschalten"
    2. error_reporting=E_ALL - alle möglichen Fehlerlevel ausgeben lassen
  5. Solltest du Änderungen vorgenommen haben, speichere die Datei und starte dann den Server neu (XAMPP / MAMP Control). Die PHP.INI wird nur beim Start des Servers gelesen, die Änderungen werden also erst nach einem Neustart aktiv. 

Tips und Links

Wenn MAMP/XAMPP nicht startet...

Ports sind virtuelle "Tore", durch die Daten fliessen können. Ein Port ist immer nur für eine Anwendung reserviert. Wenn man eine Netzwerk-Adresse aufruft, wird immer ein bestimmter Port angesteuert. Der Standard-Port für http ist 80. Wird der lokale Testserver über diesen Port aufgerufen, müssen wir die Portnummer nicht angeben. In allen anderen Fällen schon. 

Es kann sein, dass eine andere Anwendung (z.B. Skype oder Teams) auf deinem Rechner diesen Port benutzt, und du dies nicht ändern kannst. Eine Lösung ist dann, in dieser anderen Anwendung die Ports zu ändern (sofern möglich), oder diese Anwendung immer zu beenden, wenn du deinen Localhost benuten willst. Sollte beides nicht möglich sein, können die Ports in XAMPP und MAMP geändert werden.

Eine Anleitung dazu und andere Troubleshooting Tipps zu MAMP findest du bei Kinsta (Punkt 2 - ändere deinen Listening Port)
https://kinsta.com/de/wissensdatenbank/mamp-nicht-startet/#2-ndere-deinen-listening-port 

Für MAMP Pro: https://documentation.mamp.info/en/MAMP-PRO-Mac/Settings/Ports-and-User 

Für XAMPPhttps://lerndoku.com/xampp-apache-server-port-aendern 

Mittel

Testumgebung

Ermögliche dir einen Enwticklungsserver, über dessen Einstellungen du die Kontrolle hast.


Kategorie