Każdy PHP developer prędzej czy później staje przed pytaniem: jak postawić lokalne środowisko? Przez lata XAMPP był domyślną odpowiedzią. Dziś mamy znacznie więcej opcji – i znacznie więcej powodów, żeby zrezygnować z XAMPP na rzecz narzędzi opartych na Dockerze. Porównuję trzy popularne podejścia z perspektywy pracy z PHP i Magento 2.
XAMPP – klasyk z bagażem przeszłości
XAMPP to paczka instalacyjna łącząca Apache, MariaDB, PHP i Perl. Działa na Windows, macOS i Linux. Przez lata był standardem przy nauce PHP i stawianiu pierwszych projektów.
Zalety:
- Instalacja jednym klikiem, zero wiedzy o Dockerze czy sieci
- Działa od razu po instalacji, panel zarządzania w przeglądarce
- Niskie wymagania sprzętowe
Wady w kontekście Magento 2:
- Jeden globalny PHP dla wszystkich projektów – zmiana wersji to ręczna edycja konfiguracji
- Brak Elasticsearch w paczce – Magento 2.3+ wymaga go do wyszukiwania
- Brak izolacji projektów – jeden projekt może wpływać na drugi przez współdzieloną bazę i konfigurację
- Różnice między XAMPP a środowiskiem produkcyjnym (Linux + nginx) generują błędy „u mnie działa”
- Trudne odtworzenie środowiska na innym komputerze – ręczna konfiguracja od zera
Dla Magento 2 XAMPP to zły wybór. Można go uruchomić, ale walka z konfiguracją nginx/Apache, PHP-FPM i Elasticsearch zajmuje więcej czasu niż sam development.
DDEV – Docker z ludzką twarzą
DDEV abstrahuje Dockera za prostym CLI. Nie musisz znać Dockera, żeby zacząć – ale możesz go rozszerzać gdy potrzebujesz.
Zalety:
- Natywne wsparcie dla Magento 2 jako typ projektu
- Każdy projekt ma własną wersję PHP, bazy danych, nginx
- Elasticsearch, Redis, RabbitMQ dostępne przez gotowe add-ony lub docker-compose
- Xdebug włączasz jedną komendą:
ddev xdebug on - Środowisko przenośne –
.ddev/config.yamlwersjonujesz razem z projektem - Działa spójnie na macOS, Linux i Windows (WSL2)
Wady:
- Wymaga Dockera – na słabszych maszynach lub Windows bez WSL2 bywa wolny
- Pierwsza instalacja i pobieranie obrazów zajmuje czas
- Warstwa abstrakcji ukrywa Dockera – gdy coś się posypie głębiej, diagnostyka wymaga wiedzy o kontenerach
Warden – dla zaawansowanych zespołów
Warden to narzędzie CLI stworzone z myślą o Magento 2 przez zespół z Ecomteck (dziś Since Day One). W przeciwieństwie do DDEV nie abstrahuje Dockera – daje Ci pełną kontrolę nad kompozycją kontenerów przez docker-compose.
Zalety:
- Pełna kontrola nad konfiguracją kontenerów
- Globalny reverse proxy (Traefik) – wszystkie projekty działają na czytelnych domenach lokalnych bez kolizji portów
- Środowisko bardzo zbliżone do produkcyjnego (nginx, PHP-FPM, Varnish, RabbitMQ w domyślnej konfiguracji)
- Świetnie sprawdza się w zespołach – wspólna konfiguracja dla całego projektu
Wady:
- Próg wejścia znacznie wyższy niż DDEV – wymaga rozumienia Dockera i docker-compose
- Mniej „automagii” – więcej ręcznej konfiguracji
- Oficjalnie wspiera macOS i Linux – na Windows tylko przez WSL2
- Mniejsza społeczność i mniej dokumentacji niż DDEV
Porównanie w tabeli
| Kryterium | XAMPP | DDEV | Warden |
|---|---|---|---|
| Próg wejścia | Bardzo niski | Niski | Wysoki |
| Izolacja projektów | Brak | Pełna | Pełna |
| Magento 2 out-of-the-box | Nie | Tak | Tak |
| Elasticsearch | Ręcznie | Add-on | Domyślnie |
| Xdebug | Ręcznie | Jedna komenda | Konfiguracja |
| Przenośność | Słaba | Dobra | Bardzo dobra |
| Windows | Tak | Tak (WSL2) | WSL2 only |
| Kontrola nad Docker | Brak | Ograniczona | Pełna |
Co wybrać?
Jeśli pracujesz solo lub w małym zespole i chcesz szybko zacząć – DDEV to najlepszy wybór. Daje izolację, przenośność i obsługę Magento 2 bez głębokiej wiedzy o Dockerze.
Jeśli budujesz środowisko dla większego zespołu, zależy Ci na środowisku maksymalnie zbliżonym do produkcji i masz czas na konfigurację – Warden jest wart uwagi. Szczególnie jeśli serwer produkcyjny działa na Varnish i RabbitMQ.
XAMPP zostawiam dla kursantów uczących się podstaw PHP. W kontekście Magento 2 to narzędzie z innej epoki.
Podsumowanie
Wybór środowiska lokalnego to decyzja, która wpływa na komfort pracy przez miesiące. Docker-based to dziś standard – różnica między DDEV a Wardenem sprowadza się do tego, ile kontroli potrzebujesz i ile czasu chcesz poświęcić na konfigurację.
