XAMPP - Lokaler Entwicklungsserver
Sie befinden sich:
Home >
Php >
XAMPP - Lokaler Entwicklungsserver
Hier erklären wir, wie Sie einen lokalen Entwicklungsserver auf ihren lokalen PC
einrichten um neue PHP-Anwendungen zu entwickeln.
Einrichtung und Verwendung
Die Software mit dem Namen XAMPP ist für einen Web-Server bestimmt. Mit diesem Programm kann
dieser eingerichtet und gewartet werden. Verschiedene Tools stehen dem Anwender zur
Verwendung, um eine optimale Ausnutzung seines Systems zu erhalten. Der Name ist
zusammengesetzen aus verschiedenen Buchstaben. Das X steht dafür, dass dieses Programm auf
alle Betriebssysteme installiert werden kann. Das A steht für Apache, den enthaltenen Webserver, und das M bedeutet MariaDB (ehemals MySQL), das
relationale Datenbankmanagementsystem. PP steht einmal für PHP und einmal für Perl.
Dies sind die Skriptsprachen, die am meisten verwendet werden. Durch die Verwendung dieser
Software besteht die Möglichkeit die Geschwindigkeit des Servers und auch dessen Stabilität
deutlich zu verbessern. Mehrere Nutzer können demnach gleichzeitig den Server nutzen, ohne
mit Einschränkungen leben zu müssen. Zu dem Programm XAMPP werden die verschiedenen
notwendigen Tools mitgeliefert und diese sind dann unter anderem: Apache, MariaDB, PHP,
OpenSSL, phpMyAdmin und das XAMPP Security
Programm.
Grundinformationen
Durch MariaDB (früher MySQL) bietet sich dem Nutzer die Möglichkeit, Datenbanken zu erstellen und zu verwalten.
MariaDB ist ein quelloffenes, relationales Datenbankmanagementsystem und vollständig kompatibel mit MySQL. Die Skriptsprache PHP
ist als freie Software mit einer PHP Lizenz zu erhalten und wird für die Erstellung von
Webseiten und Webanwendungen angewandt. Sie ist die häufigste angewendete Programmiersprache
und kann daher für alle möglichen und unmöglichen Seiten genutzen werden.
Die XAMPP Software wird von Apache Friends für Windows, Linux und macOS herausgegeben.
Sie ist kostenfrei erhältlich und lässt sich kinderleicht installieren.
Einfache und übersichtliche Handhabung
Auf dem Markt sind verschiedene Distributionen erhältlich. Einmal für Linux, einmal für
Windows, und einmal für macOS. Die Anwendung ist immer die Selbe.
Sehr leichte Handhabung und Installation auf allen Betriebssystemen. Um sicher zu gehen,
dass das Programm nach der Installation auch wirklich einwandfrei funktioniert, ist ein
Beispielprogamm mit installiert worden, in dem nun erst einmal herum probiert werden kann.
Da die Software vollkommen kostenlos ist, geht der Anwender keine Risiken ein und sollte er
dennoch nicht zufrieden sein, ist eine Ihrstallation ebenso unkompliziert.
XAMPP ist für professionelle Entwickler wie auch für die Anfänger geeignet. Einfache und
übersichtliche Handhabung von Apache und allen anderen Tools. Das Programm soll als
Unterstützung dienen, der Herausgeber übernimmt allerdings keinerlei Gewährleistung auf die
Ausgereiftheit.
Sichekt auf der Festplatte extrahiert und es geht los
Damit sie XAMPP installieren können, laden Sie sich dies auf der offiziellen Webseite von Apache Friends
herunter. Die Installation von XAMPP ist sehr einfach und es stehen einem drei
verschiedene Möglichkeiten zur Verfügung. Die einfachste Art der Installation ist mit dem
Installer durchgeführt. Die Anwendung ist bekannt und erfolgt nach der Beantwortung einiger
Fragen, beispielsweise dem Zielordner. Sobald die Installation abgeschlossen ist, öffnet
sich das Control Panel Application-Fenster und schon kann losgelegt werden.
Eine weitere Installationsvariante ist mit ZIP oder 7zip. Wie der Name bereits sagt, muss
hier vor der endgültigen Installation das Programm entpackt werden. Dazu einfach das ZIP
Archiv in dem Zielordner entpacken, danach die "setup xampp.bat" starten und schon geht es
los. Möchte man XAMPP ohne setup starten, gibt es natürlich auch eine Lösung.

XAMPP Control Panel
Dazu muss das Programm sichekt auf der Festplatte extrahiert werden. Somit erspart man sich das
Ausführen der Setup-Datei. Auf dem XAMPP Control Panel können nun alle Befehle ausgeführt
werden, wie beispielsweise das Starten oder Stoppen der einzelnen Tools.
Sobald Apache und MariaDB gestartet sind werden Beispiele angezeigt und die zusätzlich
benötigten Tools überprüft. Die XAMPP Webverwaltung erreichen Sie unter:
http://localhost/
Hier können dann auch die ersten Gehversuche für den Anfänger unternommen werden. Einfach mal
alles ausprobieren, was einem einfüllt, alle Möglichkeiten durchsuchen es wird schon nicht
schief gehen.
Das Programm ist sehr offen konfiguriert
Um immer auf dem Laufenden zu bleiben, empfiehlt es sich, die neuesten Upgrades zu laden,
damit eine fehlerfreie Funktionsweise gewährleistet werden kann. Und in der heutigen Zeit
ist die Frage nach der vorhandenen Sicherheit selbstverständlich. XAMPP ist aus Sicht des
Sicherheitsstandards nicht für Produktionen oder größere Firmen geeignet, sondern eher für
den normalen Entwickler. Das Programm ist sehr offen konfiguriert, damit dem Entwickler
nicht allzu viele Grenzen beim Schreiben aufgezeigt werden. Es ist damit ein angenehmes
Arbeiten und probieren gewährleistet ohne das bestimmte Rechte nicht bestehen.
Eine Liste der absichtlichen Unsicherheit wird selbstverständlich bei der Lieferung
beinhaltet sein. Beispielsweise hat der MySQL-Administrator kein Passwort. Der MySQL-Server
ist ganz normal ohne Hürden über das Netzwerk erreichbar, ebenso wie der phpMyAdmin. Das
XAMPP Verzeichnis an sich nicht geschützt. Wer aber damit leben kann und genau weiß was er
tut, für den sind das optimale Einstellungen. Diese bestehenden Lücken können aber mit
einfachen Methoden geschlossen werden, beispielsweise mit einem externen Router oder aber
auch schon mit einer normalen Firewall. XAMPP hat für solche Fälle eine Sicherheitskonsole
eingerichtet, auf der die wichtigsten Fragen und Tipps aufgeschrieben sind. Beispielsweise
können darüber bereits die fehlenden Passwörter eingerichtet werden oder man erhölt
Informationen zu anderen ausführbaren Features. Die vier Bausteine: Apache, MariaDB, PHP, phpMyAdmin
XAMPP ist kein einzelnes Programm, sondern ein vorkonfiguriertes Bündel aus mehreren Server-Komponenten, die Sie sonst einzeln installieren und aufeinander abstimmen müsstest. Im Kern stecken vier Werkzeuge, die jeden lokalen PHP-Stack ausmachen. Sie bekommen sie in einem Schritt installiert und sparen sich Stunden mit Konfigurationsdateien und Pfadangaben.
Apache als Webserver
Der Apache HTTP Server nimmt Ihre Anfragen auf Port 80 entgegen, schaut in das passende Verzeichnis und liefert Dateien aus. Bei einer PHP-Datei reicht er die Verarbeitung an das PHP-Modul weiter und schickt das Ergebnis als HTML zurück an den Browser. Sie können Apache über das XAMPP-Control-Panel mit einem Klick starten und stoppen.
MariaDB als Datenbank
Früher hieß die Datenbank in XAMPP MySQL, seit 2015 wird MariaDB ausgeliefert. Beide sprechen das gleiche Protokoll und sind in der Praxis austauschbar. Für Ihren PHP-Code spielt es keine Rolle, ob am Port 3306 ein MySQL- oder ein MariaDB-Server lauscht. Bestehende Tutorials zu mysqli oder PDO funktionieren ohne Anpassung.
PHP als Sprachlaufzeit
PHP läuft in XAMPP als Apache-Modul. Das bedeutet, dass jede Anfrage, die der Apache an eine .php-Datei weiterreicht, im selben Prozess ausgeführt wird. Daneben liegt eine eigene php.exe für die Kommandozeile bereit. Mit ihr können Sie Skripte ohne Browser ausführen, was beim Debuggen oder bei Migrations-Skripten praktisch ist. Wie Sie PHP gezielt im CLI-Modus starten, zeigt das Tutorial zu php_sapi_name() und der PHP-CLI.
phpMyAdmin als grafische Oberfläche
phpMyAdmin ist eine PHP-Webanwendung, die Sie in jedem Browser unter http://localhost/phpmyadmin öffnen können. Sie reicht alle Befehle an MariaDB weiter und visualisiert Tabellen, Indizes und Daten. Sie legen dort Datenbanken an, importierst SQL-Dumps und arbeiten mit Benutzerkonten. Für den Anfang ist sie eine angenehme Alternative zu reinen Kommandozeilen-Werkzeugen.
Mermaid: So spielen die Komponenten zusammen
Bevor Sie XAMPP installieren, hilft ein Blick auf das Zusammenspiel der Bausteine. Der Browser stellt die Anfrage, Apache empfängt sie, PHP wird zur Verarbeitung eingespannt, und falls nötig fragt PHP die Datenbank ab. Das Ergebnis wandert auf demselben Weg zurück.
flowchart TD
A[Browser] --> B[Apache]
B --> C[PHP-Modul]
C --> D[(MariaDB)]
D --> C
C --> B
B --> A
Diese Kette ist überall identisch, egal ob Ihre Anwendung ein einfaches Kontaktformular oder ein ausgewachsenes CMS ist. Wenn an einer Stellen Sie etwas hakt, wissen Sie dank dieser Übersicht, wo Sie als Erstes nachschauen müssen. Bei einem 404-Fehler ist Apache die richtige Anlaufstelle, bei einem White-Screen meistens das PHP-Modul, und bei einer Verbindungsfehlermeldung die MariaDB.
Installation auf Windows, Mac und Linux
Apache Friends bietet XAMPP für drei Betriebssysteme an. Der Installer übernimmt die meiste Arbeit, ein paar Stellschrauben solltest Sie trotzdem kennen, damit es danach keine Überraschungen gibt.
Windows
Laden Sie den Installer von der offiziellen Apache-Friends-Seite und führe ihn als Administrator aus. Wähle als Zielverzeichnis am besten C:\xampp, weil viele Pfadangaben in Tutorials genau diesen Ordner annehmen. Nach der Installation starten Sie das Control Panel und sehen eine Liste mit Apache, MySQL, FileZilla, Mercury und Tomcat. Aktiviere Apache und MySQL über den Start-Button.
macOS
Auf dem Mac gibt es zwei Varianten. Die klassische Version installiert XAMPP wie unter Windows sichekt auf der Festplatte. Die VM-Variante nutzen eine Linux-Maschine im Hintergrund und ist seit Apple Silicon die robustere Wahl. Nach der Installation öffnen Sie /Applications/XAMPP/manager-osx.app, dort starten Sie die Server.
Linux
Unter Linux laden Sie eine .run-Datei und machen sie mit chmod +x xampp-linux-x64-installer.run ausführbar. Mit sudo ./xampp-linux-x64-installer.run starten Sie den grafischen Installer. XAMPP landet unter /opt/lampp. Sie steuerst es per Terminal mit sudo /opt/lampp/lampp start und sudo /opt/lampp/lampp stop.
Das htdocs-Verzeichnis und virtuelle Hosts
Das Verzeichnis htdocs ist der Sammelort für alle Webprojekte, die Sie lokal betreibst. Eine Datei htdocs/test.php erreichst Sie im Browser unter http://localhost/test.php. Solange Sie nur ein Projekt hast, reicht das aus. Sobald mehrere Projekte parallel laufen, lohnen sich virtuelle Hosts. Damit bekommt jede Anwendung ihren eigenen Hostnamen, ihren eigenen Pfad und eigene Konfigurationsoptionen.
<VirtualHost *:80>
ServerName shop.local
DocumentRoot "C:/xampp/htdocs/shop/public"
<Directory "C:/xampp/htdocs/shop/public">
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Damit Ihr Browser den Namen shop.local auch findet, ergänzt Sie in der Hosts-Datei eine Zeile mit 127.0.0.1 shop.local. Nach einem Apache-Neustart erreichst Sie das Projekt unter http://shop.local.
PHP-Version wechseln
Manchmal brauchen Sie eine andere PHP-Version, etwa weil ein älteres Projekt mit PHP 7.4 läuft, ein neues aber bereits PHP 8.4 erwartet. XAMPP liefert immer eine feste Version mit, mehrere parallel sind ab Werk nicht vorgesehen. Es gibt zwei pragmatische Wege, das zu lösen.
Der erste Weg ist die parallele Installation mehrerer XAMPP-Versionen in unterschiedlichen Ordnern. Der zweite Weg verwendet dieselbe XAMPP-Installation, tauscht aber den PHP-Ordner aus. Laden Sie dazu von windows.php.net die gewünschte Thread-Safe-Variante, entpacke sie nach C:\xampp\php84 und passe die Apache-Konfiguration in httpd-xampp.conf an.
<?php
declare(strict_types=1);
/* Schnelltest: Welche PHP-Version laeuft gerade unter Apache? */
echo 'Aktuelle Version: ' . PHP_VERSION . PHP_EOL;
echo 'SAPI: ' . PHP_SAPI . PHP_EOL;
echo 'Geladene php.ini: ' . php_ini_loaded_file() . PHP_EOL;
Legen Sie diese Datei als htdocs/phpversion.php ab und rufe sie im Browser auf. So bekommen Sie in drei Zeilen Klarheit darüber, welche Version Apache tatsächlich nutzen und welche php.ini aktiv ist. Eine ausführlichere Variante mit allen Modulen finden Sie im Tutorial zu phpinfo() und phpversion().
MySQL und MariaDB konfigurieren
In der Standardkonfiguration läuft MariaDB ohne Passwort für den Benutzer root. Das ist für lokale Tests bequem, wird in dem Moment aber zum Problem, sobald Ihr Rechner in einem fremden Netz hängt. Setzen Sie sichekt nach der Installation ein Passwort.
/* Passwort fuer root setzen */
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mein_geheimes_pw';
FLUSH PRIVILEGES;
Damit phpMyAdmin nach der Passwortänderung weiter funktioniert, trägst Sie das Passwort in xampp/phpMyAdmin/config.inc.php bei $cfg['Servers'][$i]['password'] ein. Weitere Stellschrauben wie Zeichensatz, Speicher-Engine oder Slow-Query-Log liegen in xampp/mysql/bin/my.ini.
HTTPS lokal einrichten
Moderne Browser melden bei vielen APIs schon im lokalen Netz, dass sie nur über HTTPS funktionieren. Service Worker, die Clipboard-API oder die Geolocation-API gehören dazu. Zum Glück ist das mit XAMPP schnell erledigt. Apache liefert ab Werk ein selbstsigniertes Zertifikat mit. Sauberer wird es mit mkcert. Das Programm erzeugt ein lokales Root-Zertifikat, das Ihr Betriebssystem als vertrauenswürdig anerkennt.
<VirtualHost *:443>
ServerName shop.local
DocumentRoot "C:/xampp/htdocs/shop/public"
SSLEngine on
SSLCertificateFile "C:/xampp/apache/conf/ssl/shop.local.pem"
SSLCertificateKeyFile "C:/xampp/apache/conf/ssl/shop.local-key.pem"
</VirtualHost>
Ein Apache-Neustart später erreichst Sie Ihr Projekt unter https://shop.local ohne Browserwarnung. Cookies mit dem Flag Secure funktionieren dann genauso wie auf dem Live-System.
Mail-Catcher: Mercury, Mailpit und Sendmail
Wenn Sie eine Anwendung lokal testen, wollen Sie keine echten Mails verschicken. Stattdessen sollen E-Mails irgendwo landen, wo Sie sie ansehen können, ohne den Posteingang einer realen Adresse zuzumüllen. XAMPP bringt dafür Mercury mit, einen vollwertigen Mailserver, der lokal Mails annimmt. In der Praxis ist Mercury allerdings für Anfänger sperrig, weshalb viele Entwickler heute auf Mailpit umsteigen.
Mailpit ist ein einzelnes ausführbares Programm, das einen SMTP-Server auf Port 1025 und eine Web-Oberfläche auf Port 8025 startet. Sie laden die Binärdatei, starten sie und passt Ihre php.ini an, sodass mail() über den lokalen SMTP-Server schickt.
; Auszug aus xampp/php/php.ini
SMTP = localhost
smtp_port = 1025
sendmail_from = test@localhost
Nach einem Apache-Neustart wandert jede Mail aus Ihrem PHP-Skript in die Mailpit-Oberfläche. Sie sehen Absender, Empfänger, HTML- und Textversion und können Anhänge prüfen.
<?php
declare(strict_types=1);
/* Testmail an den lokalen Mailpit. */
$ok = mail(
'kunde@example.com',
'Lokaler Test',
"Hallo,\nhier kommt eine Testmail aus XAMPP.",
"From: shop@shop.local\r\n"
);
echo $ok ? 'Mail wurde uebergeben.' : 'Versand fehlgeschlagen.';
Wenn Sie nach dem Aufruf nichts sehen, lohnt ein Blick in die Apache- und PHP-Logs. Wie Sie Fehlermeldungen sichtbar machen, beschreibt das Tutorial zu error_reporting() in PHP.
Alternativen: Laragon, MAMP und Docker
XAMPP ist nicht das einzige Komplettpaket. Je nach Betriebssystem und Vorlieben gibt es Alternativen, die in bestimmten Punkten Vorteile bieten. Eine kurze Übersicht hilft sich bei der Wahl.
Laragon
Laragon ist eine moderne Windows-Lösung, die ähnlich wie XAMPP Apache, MariaDB und PHP bündelt, dazu aber Pretty-URLs, automatische virtuelle Hosts und einen schnelleren Wechsel zwischen PHP-Versionen mitbringt.
MAMP
MAMP ist die klassische Wahl auf macOS und seit langem auch unter Windows verfügbar. Die kostenpflichtige Pro-Variante erlaubt mehrere PHP-Versionen, Hosts und sogar Cloud-Sync.
Docker
Docker ist die professionelle Variante. Statt einen vorgegebenen Stack zu installieren, beschreiben Sie in einer docker-compose.yml exakt, welche Versionen Sie wollen, welche Ports offen sind und welche Volumes gemountet werden. Mehrere Projekte mit unterschiedlichen PHP-Versionen laufen problemlos parallel und identisch zur späteren Produktion. Eine schrittweise Einführung finden Sie im Tutorial zu PHP mit Docker.
Praxisbeispiel: Erste PHP-Datei in htdocs ablegen und aufrufen
Genug Theorie. Nach der Installation wollen Sie sehen, dass alles läuft. Legen Sie im Verzeichnis xampp/htdocs/ einen neuen Ordner namens start an. Darin erstellen Sie eine Datei index.php mit folgendem Inhalt.
<?php
declare(strict_types=1);
/* Erstes Lebenszeichen: Zeit, Version und Server-Software. */
$jetzt = (new DateTimeImmutable())->format('d.m.Y H:i:s');
echo '<h1>Willkommen im lokalen Server</h1>';
echo '<p>Aktuelle Zeit: ' . htmlspecialchars($jetzt) . '</p>';
echo '<p>PHP-Version: ' . PHP_VERSION . '</p>';
echo '<p>Server: ' . htmlspecialchars($_SERVER['SERVER_SOFTWARE'] ?? 'unbekannt') . '</p>';
Speichern Sie die Datei und öffne im Browser http://localhost/start/. Wenn alles korrekt läuft, sehen Sie eine Überschrift, die aktuelle Uhrzeit und die PHP-Version. Bekommen Sie stattdessen den Quelltext zu sehen, hat Apache PHP nicht eingebunden, ein Neustart aus dem Control Panel lösen das in den meisten Fällen.
Mit dieser Datei haben Sie den vollständigen Kreis durchlaufen: Browser fragt an, Apache nimmt entgegen, PHP verarbeitet, das Ergebnis kommt zurück. Ab hier können Sie alles bauen, von kleinen Spielprojekten bis zu produktionsnahen Anwendungen. Die meisten echten Anwendungen unterscheiden sich vom Hallo-Welt-Beispiel nur durch mehr Dateien und eine Datenbankverbindung, das Grundprinzip bleibt identisch.
|