Navigation
 Startseite
 Fachbücher
 Anzeigenmarkt
 Forum
 Webmaster News
 Script Newsletter
 Kontakt
 Script Installation
 Php
 Php Tutorials
 Webhoster Vergleich
 Impressum

Community-Bereich
 kostenlos Registrieren
 Anmelden
 Benutzerliste

Script Datenbank
 Script Archiv
 Script Top 20
 Screenshots
 Testberichte

Suche
 

Unsere Php Scripts
 Counter Script
 Umfrage Script
 Bilder Upload Script
 Terminverwaltung
 Simple PHP Forum
 RSS Grabber

Tools und Generatoren
 .htpasswd Generator
 md5 Generator
 base64 Generator
 Markdown to HTML
 Colorpicker
 Unix timestamp Tool
 Unit Test Generator
 TLD Liste
 Webkatalog‑Verzeichnis

Artfiles.de
Bietet Serviceorientierte...
https://www.Artfiles.de
Hosterplus.de
Bekommen Sie Speicherplatz (Webspace), Domains...
https://www.Hosterplus.de
 
 
 

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
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.