PrestaShop lokal entwickeln: XAMPP, WAMP, Docker & Linux
Vollständige Anleitung zur lokalen PrestaShop-Entwicklungsumgebung — XAMPP, WAMP, MAMP, Docker, natives Linux sowie Windows-vs-Linux-Vergleich für Entwickler.
Warum lokal entwickeln?
Jeder erfahrene PrestaShop-Entwickler kennt die Geschichte vom „kurzen Test“ im Live-Shop, der den Checkout zerstört oder den Zugang zum Back Office gesperrt hat. Lokale Entwicklung beseitigt diese gesamte Kategorie von Katastrophen.
- Sicherheit: Testen Sie Theme-Änderungen, Modul-Installationen und PHP-Upgrades ohne jedes Risiko für Ihren Live-Shop.
- Geschwindigkeit: Kein FTP-Upload, kein Warten auf das Hosting-Panel. Ändern Sie eine Datei, aktualisieren Sie den Browser, sehen Sie das Ergebnis sofort.
- Offline arbeiten: Entwickeln Sie im Zug, im Café ohne WLAN oder während eines Hosting-Ausfalls.
- Multi-Version-Tests: Betreiben Sie PrestaShop 1.7, 8.x und 9.x gleichzeitig. Testen Sie ein Modul an einem Nachmittag über alle Versionen hinweg.
- Debugging-Tools: Nutzen Sie Xdebug für schrittweises Debugging, aktivieren Sie vollständige Fehlerausgabe, analysieren Sie langsame Queries — unmöglich auf Shared Hosting.
Wenn Sie PHP-Dateien direkt auf Ihrem Live-Server bearbeiten, gehen Sie unnötige Risiken ein. Eine lokale Umgebung ist in 30 Minuten eingerichtet und bewahrt Sie vor dem Notfall um 3 Uhr morgens, der andernfalls früher oder später eintreten wird.
Windows vs Linux vs macOS — Ein ehrlicher Vergleich
Wir sind Linux-Entwickler und tun nicht so, als wäre es anders. Aber wir respektieren jede Plattform und geben Ihnen eine ehrliche Einschätzung.
Windows
XAMPP und WAMP machen den Einstieg leicht. Für gelegentliches Testen funktioniert Windows problemlos. Allerdings wurde PrestaShop für Linux-Server konzipiert, was subtile Reibungen verursacht:
- Dateiberechtigungen: PrestaShop verwendet Unix-Berechtigungen (chmod 755/644). Windows hat ein anderes Modell — XAMPP gewährt Vollzugriff auf alles und verdeckt damit Fehler, die auf Ihrem Linux-Server auftreten.
- Groß-/Kleinschreibung:
MyModule.phpundmymodule.phpsind unter Windows dieselbe Datei, unter Linux jedoch verschiedene. Module können lokal funktionieren und beim Deployment fehlschlagen. - Zeilenenden: Windows-CRLF vs. Linux-LF kann „headers already sent“-Fehler verursachen oder Shell-Skripte beschädigen.
- Leistung: Windows Defender scannt PHP-Dateien aktiv während der Ausführung und verursacht messbaren Overhead.
Linux
Die größte Übereinstimmung mit Ihrer Produktionsumgebung. Gleiches Dateisystem, gleiche Berechtigungen, gleiche Werkzeuge.
- Nativer Docker: Keine Virtualisierungsschicht. Sofortiger Start, native Dateisystem-Leistung.
- Frei und Open Source: PHP, MySQL, Apache, Nginx, Composer, Node.js, Git, VS Code — alles kostenlos.
- Produktionsgleichheit: Fehler, die Sie lokal finden, existieren auch auf dem Server. Fehler, die Sie lokal übersehen, werden Sie (meistens) in der Produktion nicht überraschen.
macOS
Ein solider Mittelweg — Unix-basiert, sodass Berechtigungen und Pfade wie unter Linux funktionieren. Docker läuft über eine leichtgewichtige VM (etwas I/O-Overhead). Homebrew bietet einfachen Zugang zu allen Tools: brew install php@8.2 mysql composer.
Unsere Empfehlung
Für Vollzeit-PrestaShop-Entwicklung nutzen Sie Linux — konkret Ubuntu (am einfachsten) oder Arch Linux (meiste Kontrolle). Wir persönlich verwenden Arch Linux mit KDE Plasma — alles, was wir nutzen, ist Open Source und legal kostenlos.
Für gelegentliches Testen als Shop-Betreiber ist XAMPP unter Windows völlig ausreichend. Lassen Sie sich von niemandem einreden, das Betriebssystem wechseln zu müssen, nur um ein Modul zu testen.
Die „beste“ Entwicklungsumgebung ist diejenige, die Sie tatsächlich nutzen. Ein Windows-XAMPP-Setup, das Sie täglich verwenden, schlägt ein perfektes Linux-Docker-Setup, das Sie nie konfiguriert haben.
Option 1: XAMPP (Windows, macOS, Linux)
XAMPP bündelt Apache, MariaDB, PHP und phpMyAdmin in einem einzigen Installer. Für alle, die PrestaShop lokal mit minimalem Aufwand wollen, ist dies der schnellste Weg.
Installation
1. Laden Sie die Datei von apachefriends.org herunter. Wählen Sie die PHP-Version passend zu Ihrem PrestaShop: 7.2-7.4 für PS 1.7, 8.0-8.2 für PS 8.x, 8.1-8.3 für PS 9.x.
2. Installieren Sie (Windows: C:\xampp, macOS: /Applications/XAMPP). Starten Sie Apache und MySQL über das Control Panel.
3. Erstellen Sie eine Datenbank unter http://localhost/phpmyadmin — klicken Sie auf „Neu“, benennen Sie sie prestashop, wählen Sie utf8mb4_general_ci.
4. Laden Sie PrestaShop von den GitHub Releases herunter. Entpacken Sie es nach C:\xampp\htdocs\prestashop\.
5. Rufen Sie http://localhost/prestashop auf und folgen Sie dem Installer (Datenbankserver: localhost, Benutzer: root, Passwort: leer). Löschen Sie nach Abschluss das Verzeichnis install/.
Erforderliche php.ini-Anpassungen
Finden Sie die php.ini über das XAMPP Control Panel → Apache → Config:
memory_limit = 512M ; Standard 128M reicht nicht
max_execution_time = 300 ; Standard 30s zu kurz für Importe
upload_max_filesize = 64M ; Standard 2M zu klein für Modul-ZIPs
post_max_size = 64M
max_input_vars = 20000 ; Standard 1000 — kritisch für PS-Admin-Formulare
Aktivieren Sie benötigte Erweiterungen, indem Sie das ; entfernen: intl, gd, zip, curl, mbstring. Starten Sie Apache neu.
Häufige XAMPP-Probleme
Port-80-Konflikt: Skype oder IIS belegt Port 80. Ändern Sie Listen 80 zu Listen 8080 in der httpd.conf und greifen Sie dann über http://localhost:8080 zu.
„max_input_vars“-Fehler: Das häufigste XAMPP-Problem mit PrestaShop. Einstellungen werden nicht gespeichert, Kombinationen gehen verloren. Setzen Sie den Wert in der php.ini auf 20000.
Weiße Seite: Prüfen Sie C:\xampp\apache\logs\error.log — meistens fehlt eine Erweiterung oder der Speicher reicht nicht aus.
Option 2: WAMP (nur Windows)
WAMPs Killer-Feature ist der integrierte PHP-Versionswechsel — Linksklick auf das Tray-Symbol → PHP → Version, und sofort umschalten.
Einrichtung
1. Laden Sie die Datei von wampserver.aviatechno.net herunter (64-Bit). Installieren Sie zuerst die Visual C++ Redistributables — WAMP benötigt diese.
2. Installieren Sie nach C:\wamp64. Das Tray-Symbol wird grün, wenn alle Dienste laufen.
3. Fügen Sie PHP-Versionen über die WAMP-Addons-Seite hinzu. Sie integrieren sich automatisch.
Virtual Hosts
WAMP enthält einen Virtual-Host-Manager: Tray-Symbol → Your VirtualHosts → VirtualHost Management. Richten Sie ps17.local und ps8.local ein, die auf verschiedene Verzeichnisse zeigen. WAMP aktualisiert Ihre hosts-Datei und Apache-Konfiguration automatisch.
WAMPs PHP-Versionswechsler ändert die Version serverweit. Sie können PHP 7.4 und 8.2 nicht gleichzeitig für verschiedene Virtual Hosts betreiben — dafür benötigen Sie Docker.
Option 3: MAMP (macOS)
MAMP ist das Mac-Äquivalent zu XAMPP. Die kostenlose Version bietet Ihnen ein Document Root mit Apache, PHP und MySQL. MAMP Pro (59 $) ergänzt mehrere Hosts, SSL, PHP-Versionswechsel und Nginx.
Schnelleinrichtung: Laden Sie die Datei von mamp.info herunter, starten Sie die Dienste, erstellen Sie eine Datenbank über phpMyAdmin, legen Sie PrestaShop in /Applications/MAMP/htdocs/prestashop/ ab und greifen Sie über http://localhost:8888/prestashop zu.
Wenn die Docker-Leistung auf Ihrem Mac inakzeptabel ist (häufig bei gemounteten Volumes), verwenden Sie stattdessen Homebrew: brew install php@8.2 mysql composer liefert native Geschwindigkeit.
Option 4: Native Linux-Einrichtung
Installieren und konfigurieren Sie jede Komponente direkt. Maximale Kontrolle, beste Leistung, größte Nähe zur Produktion.
Ubuntu / Debian
sudo apt update
sudo apt install apache2
sudo apt install php8.2 php8.2-fpm php8.2-mysql php8.2-gd php8.2-intl \
php8.2-curl php8.2-zip php8.2-xml php8.2-mbstring php8.2-bcmath
sudo apt install mysql-server
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Arch Linux: sudo pacman -S apache php php-fpm php-gd php-intl php-sodium mariadb composer, dann initialisieren Sie MariaDB und aktivieren Sie die Dienste mit systemctl.
Apache Virtual Host
Erstellen Sie /etc/apache2/sites-available/ps8.local.conf mit einem VirtualHost, der ServerName ps8.local und DocumentRoot auf Ihr PrestaShop-Verzeichnis zeigt. Setzen Sie AllowOverride All und leiten Sie PHP an FPM weiter. Aktivieren Sie mit sudo a2ensite ps8.local.conf && sudo a2enmod rewrite proxy_fcgi && sudo systemctl reload apache2. Fügen Sie 127.0.0.1 ps8.local zu /etc/hosts hinzu.
Dateiberechtigungen
Setzen Sie den Eigentümer auf www-data, Verzeichnisse auf 755, Dateien auf 644 und beschreibbare Verzeichnisse (var/, cache/, img/, upload/, config/) auf 775. Dateiberechtigungen sind das häufigste Hindernis unter Linux — wenn PrestaShop eine weiße Seite zeigt, prüfen Sie das Apache-Fehlerlog auf „Permission denied“.
Option 5: Docker — Empfohlen für ernsthafte Entwicklung
Jede PrestaShop-Version läuft in ihrem eigenen Container mit eigenem PHP und MySQL. Nichts kollidiert, nichts leckt. Lesen Sie unseren ausführlichen Docker-Leitfaden für detaillierte Anleitungen.
Schnelles docker-compose.yml
services:
prestashop:
image: prestashop/prestashop:8.2
ports: ["8085:80"]
environment:
DB_SERVER: db
DB_USER: prestashop
DB_PASSWD: prestashop
DB_NAME: prestashop
PS_DOMAIN: localhost:8085
ADMIN_MAIL: admin@yourshop.com
ADMIN_PASSWD: your_secure_password
volumes: [ps-files:/var/www/html]
depends_on: [db]
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root_pass
MYSQL_DATABASE: prestashop
MYSQL_USER: prestashop
MYSQL_PASSWORD: prestashop
volumes: [db-data:/var/lib/mysql]
volumes:
ps-files:
db-data:
Starten: docker compose up -d. Zugriff unter http://localhost:8085.
Wir betreiben über 25 PrestaShop-Container auf einem einzigen Server — von PS 1.6 bis 9.1 — für Modulentwicklung und Tests. Docker ist die einzige praktikable Möglichkeit, das zu verwalten. Selbst mit zwei oder drei Versionen bewahrt es Sie vor Abhängigkeitskonflikten.
Nach der Einrichtung: Konfiguration für alle Methoden
Erforderliche PHP-Erweiterungen
PrestaShop verweigert die Installation oder funktioniert ohne diese nicht korrekt:
- intl — Währungsformatierung, Locale-Verarbeitung (fehlt am häufigsten)
- gd — Bildverarbeitung, Thumbnails, Wasserzeichen
- curl — Zahlungsanbieter, Webservice-API
- mbstring — UTF-8-Zeichenkettenverarbeitung
- zip — Modul-Installation aus ZIP-Dateien
- xml — Import/Export, Webservice
- pdo_mysql — Datenbankverbindung
- opcache — Bytecode-Caching (technisch optional, praktisch unverzichtbar)
Überprüfen Sie: php -m | grep intl oder erstellen Sie eine phpinfo()-Seite (löschen Sie sie anschließend).
Friendly URLs aktivieren
Apache: sudo a2enmod rewrite und AllowOverride All in Ihrem vhost setzen. Nginx: Verwenden Sie try_files $uri $uri/ /index.php?$args;. Dann aktivieren Sie im Back Office → Shop-Parameter → SEO & URLs.
E-Mail-Tests mit Mailpit
Fangen Sie alle ausgehenden E-Mails lokal ab, anstatt echte E-Mails zu versenden:
docker run -d --name mailpit -p 8025:8025 -p 1025:1025 axllent/mailpit
Konfigurieren Sie PrestaShop SMTP: Server localhost, Port 1025, keine Verschlüsselung, keine Authentifizierung. E-Mails anzeigen unter http://localhost:8025.
IDE-Einrichtung
VS Code (kostenlos): Installieren Sie die Erweiterungen PHP Intelephense + PHP Debug. Konfigurieren Sie Xdebug mit port: 9003 und pathMappings, die den Container-Pfad auf Ihren Workspace-Ordner abbilden. PHPStorm (kostenpflichtig): Integrierte PHP-, Xdebug-, Datenbank-Tools und Docker-Integration. Lohnt sich, wenn PHP Ihr Beruf ist.
Einen Live-Shop lokal importieren
Tests mit Ihren echten Produkten, Ihrem Theme und Ihren Modulen decken reale Fehler auf, die eine Neuinstallation nicht finden kann.
Datenbank-Export und -Import
# Export von der Produktion (per SSH — phpMyAdmin läuft bei großen DBs in ein Timeout)
mysqldump -u db_user -p database_name > prestashop_backup.sql
# Lokale Datenbank erstellen
mysql -u root -p -e "CREATE DATABASE prestashop_local CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
# Import
mysql -u root -p prestashop_local < prestashop_backup.sql
Dateien kopieren und Konfiguration anpassen
Laden Sie wichtige Verzeichnisse (img/, modules/, themes/, config/, override/, upload/) per rsync herunter: rsync -avz user@server:/path/to/prestashop/ /local/prestashop/
-- Domain auf lokal ändern
UPDATE ps_shop_url SET domain = 'localhost:8080', domain_ssl = 'localhost:8080' WHERE id_shop_url = 1;
-- SSL deaktivieren
UPDATE ps_configuration SET value = '0' WHERE name = 'PS_SSL_ENABLED';
UPDATE ps_configuration SET value = '0' WHERE name = 'PS_SSL_ENABLED_EVERYWHERE';
Bearbeiten Sie app/config/parameters.php (PS 1.7/8.x) oder config/settings.inc.php (PS 1.6) mit den lokalen Datenbank-Zugangsdaten. Cache leeren: rm -rf var/cache/*.
Erstellen Sie nach dem Import ein neues Admin-Konto für die lokale Nutzung, anstatt Produktions-Zugangsdaten zu verwenden. Dies verhindert versehentliche Änderungen, die die Produktion betreffen, falls Ihr Workflow einmal durcheinandergerät.
Häufige Probleme bei der lokalen Entwicklung
Weißer Bildschirm nach der Installation
Prüfen Sie immer zuerst das Fehlerlog — die Antwort steht fast immer dort:
# Apache: tail -50 /var/log/apache2/error.log
# XAMPP: C:\xampp\apache\logs\error.log
# PrestaShop: tail -50 var/logs/dev.log
Fehlende Erweiterung: Das Log zeigt Call to undefined function — installieren Sie die genannte Erweiterung. Speicher: Das Log zeigt Allowed memory size exhausted — erhöhen Sie memory_limit. Falsche PHP-Version: PS 8.x mit PHP 7.4 erzeugt Type Errors — prüfen Sie mit php -v.
Kein Zugang zum Admin-Panel
mod_rewrite ist nicht aktiviert oder die .htaccess wird nicht gelesen. Aktivieren Sie rewrite: sudo a2enmod rewrite. Setzen Sie AllowOverride All in Ihrem vhost. Für XAMPP: Ändern Sie AllowOverride None zu AllowOverride All in der httpd.conf.
Extrem langsam unter Windows
Antivirenprogramm: Fügen Sie Ihre XAMPP- und PrestaShop-Verzeichnisse zu den Windows-Defender-Ausnahmen hinzu (Einstellungen → Viren- und Bedrohungsschutz → Ausschlüsse).
Docker auf WSL2: Speichern Sie Dateien im nativen WSL2-Dateisystem (/home/you/prestashop/), nicht auf einem gemounteten Windows-Laufwerk (/mnt/c/...) — der Leistungsunterschied ist dramatisch.
Bilder werden nicht geladen
Fehlendes GD: Installieren Sie php-gd. Berechtigungen: chown -R www-data:www-data img/. Importierter Shop: Generieren Sie Thumbnails neu im Back Office → Design → Bildeinstellungen.
Modul-Installation schlägt fehl
„Cannot upload“: Erhöhen Sie upload_max_filesize und post_max_size auf 64M. „Cannot unzip“: Installieren Sie php-zip. „Permission denied“: chmod 775 modules/. „Class not found“: Löschen Sie var/cache/*/class_index.php.
Datenbankverbindung verweigert
MySQL läuft nicht — prüfen Sie mit sudo systemctl status mysql und starten Sie den Dienst bei Bedarf. Bei „Access denied“ überprüfen Sie, ob die Zugangsdaten in Ihrer Konfigurationsdatei mit den MySQL-Benutzerberechtigungen übereinstimmen.
Tipps für den Entwicklungs-Workflow
Debug-Modus aktivieren: Setzen Sie in config/defines.inc.php den Wert define('_PS_MODE_DEV_', true); für Stack Traces und SQL-Details. Aktivieren Sie dies niemals auf der Produktion.
Cache deaktivieren: Back Office → Erweiterte Einstellungen → Leistung — setzen Sie den Smarty-Cache auf „Nein“ und CCC auf aus. Caching verbirgt Ihre Änderungen.
Git verwenden: git init && git add . && git commit -m "Initial structure" in Ihrem Modul-Verzeichnis. Jede Änderung wird nachverfolgt. git diff zeigt, was sich geändert hat, git checkout -- file.php stellt eine Datei wieder her.
Kurzreferenz: Versionsanforderungen
- PS 1.6.1.x: PHP 5.6-7.1, MySQL 5.0-5.7
- PS 1.7.0-1.7.6: PHP 7.1-7.3, MySQL 5.5-5.7
- PS 1.7.7-1.7.8: PHP 7.2-7.4, MySQL 5.6-8.0
- PS 8.0-8.1: PHP 8.0-8.1, MySQL 5.7-8.0
- PS 8.2: PHP 8.1-8.2, MySQL 5.7-8.0 / MariaDB 10.x
- PS 9.x: PHP 8.1-8.3, MySQL 8.0 / MariaDB 10.11+
Überprüfen Sie immer die offiziellen Systemanforderungen für Ihre genaue Version — sie ändern sich mit Minor Releases.
Wie geht es weiter?
- Modulentwicklung: Die offizielle Entwicklerdokumentation behandelt die Modulstruktur und das Hook-System.
- Xdebug einrichten: Schrittweises Debugging ist der größte einzelne Produktivitätsgewinn für die PHP-Entwicklung.
- Docker entdecken: Wenn Sie über XAMPP/WAMP hinauswachsen, deckt unser Docker-Leitfaden Multi-Version-Setups ab.
- Sicheres Deployment: Lesen Sie unseren Staging-Site-Leitfaden und Backup-Leitfaden für den Weg von lokal zur Produktion.
Die Investition in eine ordentliche lokale Umgebung zahlt sich jeden einzelnen Tag aus. Dreißig Minuten Einrichtung sparen Stunden beim Debugging und verhindern Produktionsvorfälle.
More guides available
Browse our knowledge base for more practical PrestaShop tutorials, or reach out if you need help.