© svetabelaya/Shutterstock.com
XAMPP im Überblick

Alles an Bord


Um auf dem lokalen Rechner PHP-Anwendungen zu programmieren oder Webapplikationen zu evaluieren, braucht man eine umfassende Entwicklungs- und Testumgebung. Deren Herz ist der lokal installierte Server, weitere Tools und Services sind i. d. R. integriert. Für PHP greift man dazu gerne auf XAMPP und Co. zurück.

Für den Betrieb von dynamischen Webapplikationen ist ein Server nötig, der die Daten über das Netzwerk bereitstellt, die dann durch den Browser auf dem Client interpretiert und ausgeführt werden. Eine ähnliche Infrastruktur benötigt man bereits während der Entwicklung. Selbstverständlich kann man einen Entwicklungsserver auch lokal auf dem Rechner installieren, konfigurieren und ausführen. Eine solche Einrichtung ist jedoch nicht trivial und verursacht demzufolge einiges an Aufwand. Bewährt hat sich der Einsatz komplett konfigurierter Entwicklungsumgebungen, zum Beispiel XAMPP [1]. Nach dem Download sind diese in wenigen Augenblicken installiert und konfiguriert. In diesem Artikel sehen wir uns verschiedene Komplettpakete aus diesem Umfeld an und betrachten Varianten sowie Erweiterungen. Einsteiger lernen diese Systemumgebungen kennen, und fortgeschrittene Entwickler werden hoffentlich noch die eine oder andere wichtige Information erhalten.

LAMP

Ausgangspunkt unserer Betrachtungen ist die sogenannte LAMP-Architektur. Das bekannte Akronym steht für Linux, Apache, MySQL und PHP. Diese Kombination von Software definiert eine Infrastruktur (Architektur) zum Erstellen von dynamischen Webseiten bzw. -applikationen. Zu einem solchen sogenannten LAMP-Stack gehört demnach das Zusammenwirken von Betriebssystem, Webserver, Datenbank und Programmiersprache. Dieses Zusammenspiel der Komponenten ist in Abbildung 1 illustriert.

bochkor_xampp_1.tif_fmt1.jpgAbb. 1: Ein typischer LAMP-Stack [2]

Diese Abbildung verdeutlicht die Funktionsweise einer dynamischen, serverbasierten Webapplikation. Die Basis dafür ist eine spezielle Variante des Client-Server-Modells. Der Nutzer (Client) muss keine weitere Software installiert haben, nur einen Internetbrowser. Bereits hier wird die hohe Flexibilität des Ansatzes deutlich. Internetbrowser gibt es für alle Betriebssysteme und Varianten. Auch spielt es keine Rolle, ob es sich um einen Desktop-PC, einen Laptop oder ein Smartphone bzw. Tablet handelt. Auf Clientseite kommt man mit PHP nicht in Berührung, man muss lediglich HTML-Dateien (Struktur), ggf. CSS (Design) und JavaScript (Logik) verarbeiten. Die eigentliche Anwendung läuft auf dem Server. Dazu wird PHP in den Webserver integriert, die PHP-Anwendung auf diesem abgelegt und ggf. installiert. Der Nutzer sendet eine Anfrage über den Browser an den Server, die durch das PHP-Programm verarbeitet wird. Dazu kann es erforderlich sein, dass das PHP-Programm Daten aus einer Datenbank abruft, die ebenfalls auf dem Webserver installiert bzw. von diesem erreichbar ist. Der PHP-Interpreter erzeugt auf der Basis der Anfrage und eines spezifischen Ablaufs (Algorithmus) nunmehr die Antwort in Form einer HTML-Datei. Diese HTML-Datei wird an den Client übermittelt. Der Browser selbst bekommt also stets eine HTML-Datei als Ergebnis geliefert und muss nur diese anzeigen. Er muss keine besonderen Eigenschaften besitzen, die mit der Programmiersprache des Servers zusammenhängen. Die Seiten können daher auch von älteren Browsern dargestellt werden. Nebenbei ergibt sich aus diesem Prinzip ein weiterer, sicherheitsrelevanter Vorteil: Das PHP-Programm ist von Seiten des Clients nicht einsehbar bzw. kann nicht geändert werden. Dazu ist ein Zugriff auf dem Server notwendig. Für die Anzeige und Verarbeitung der Daten greift der Anwendungsserver auf eine Datenbank zu. Die Daten werden dynamisch – auf der Basis der Abfrage des Clients – ausgewählt und als Antwort in die HTML-Datei eingeflochten. Die Integration von PHP in den Webserver kann auf zwei unterschiedliche Arten erfolgen:

  1. SAPI-Modul: Eine direkte Verbindung, die nicht für alle Webservertypen verfügbar ist. Für wichtige Server wie Apache und Microsoft IIS gibt es jedoch SAPI-Module.

  2. CGI: Das Common Gateway Interface erlaubt die Integration von PHP in nahezu alle Servern. Diese ursprüngliche Kombination, bestehend aus Linux, Apache, MySQL und PHP, kann in Bezug auf die einzelnen Bestandteile durch alternative Softwarepakete angepasst werden. Tabelle 1 enthält dazu einige Optionen.

Komponente

Alternative Softwaremodule

Betriebssystem

Linux, Windows, Solaris macOS

Webserver

Apache, nginx, Node.js

Datenbank

MySQL, PostgreSQL, CouchDB, MariaDB

Programmiersprache

PHP, Perl, Ruby, JavaScript

Tabelle 1: Mögliche Komponenten in einer lokalen System- und Entwicklungsumgebung

In den folgenden Abschnitten sehen wir uns einige Entwicklungsumgebungen für dynamische, serverseitige Webapplikationen an.

XAMPP

Das Programmpaket XAMPP hat sich schon seit sehr langer Zeit als brauchbare Systemumgebung in der serverseitigen Webentwicklung etabliert. Es steht für die unterschiedlichsten Betriebssysteme und in verschiedenen Versionen bzw. Konfigurationen unter [1] zum Download bereit, aktuell ist die Version 7.4.8. Das Paket enthält alle o. g. Bestandteile und einige weitere Tools. Wir installieren die Entwicklungsumgebung zum Beispiel unter Windows und machen uns mit der Arbeit etwas vertraut. Statt einer Installation kann auch auf die portable Version von XAMPP gesetzt werden, die das Paket nach dem Download und Entpacken sofort verfügbar macht. Im Root-Verzeichnis finden wir die folgenden Dateien:

  • setup_xampp.bat: Einrichtung (Verzeichnisse) des Webservers; diese Datei ist vor dem erstmaligen Start des Webservers auszuführen

  • xampp_start.exe: Start des Webservers

  • xampp_stopp.exe: Anhalten des Webservers

  • xampp_control.exe: Ausführen des Control Panel zur Statusanzeige des Webservers und zum Durchführen notwendiger Basiskonfigurationen

Beginnen wir mit setup_xampp.bat. Der Vorgang dauert nur wenige Augenblicke, danach starten wir erstmalig den Webserver (xampp_start.exe). Der Startprozess wird in einem Kommandozeilenfenster angezeigt. Ggf. fordert das Betriebssystem beim erstmaligen Start aus Sicherheitsgründen die notwendigen Rechte an. Über das Control Panel (Abb. 2) ist der Status des...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang