Usi ancora WAMP? Docker ti aspetta già al bancone
Sul serio apri ancora WAMP?
WAMP, XAMPP o MAMP ci hanno aiutato quando smanettavamo con PHP nel 2010, ma oggi sembrano bar che servono cola sgasata. Vuoi una stack vicina alla produzione in locale? Vuoi versionare la configurazione? Vuoi smettere la roulette delle porte mentre segui tre progetti? Docker ha risolto tutto mentre il tuo installer Apache lampeggiava in rosso.
I guai cronici di WAMP/XAMPP/MAMP
- Ambienti congelati: ogni pacchetto impone la sua versione di PHP, MySQL e Apache. Vuoi testare PHP 8.3? Prepara il defibrillatore per gli altri progetti.
- Config ingestibile: condividere
.inisu Slack per il team o la CI? Tenero ma inutile. - Zero isolamento: abiliti un modulo Apache e le perdite colpiscono ogni progetto. Ciao bug fantasma.
Docker cambia le carte
- Stack descritte in YAML: un
compose.ymlversionato ricrea l'ambiente su qualsiasi laptop o pipeline CI con un solo comando. - Servizi isolati: ogni container porta la sua versione precisa di PHP, Redis, PostgreSQL, quello che vuoi. Mescola, sostituisci, elimina.
- Osservabilità integrata: log, metriche, healthcheck… basta indovinare se
mysqldè partito. - Portabilità: Linux, macOS, Windows, ARM, x86… a Docker basta un kernel che conosca i container.
Compose moderno al posto dei vecchi docker-compose.yml
La documentazione Docker è chiara: file chiamato compose.yml, niente campo version, variabili in .env, servizi descritti in modo dichiarativo. Ecco uno snippet pronto:
yaml
Note fondamentali:
namerendedocker compose lse i log leggibili.pull_policy: alwaysevita immagini vecchie quando aggiorni la stack.depends_onconcondition: service_healthyaspetta che MariaDB sia pronta prima di avviare FrankenPHP.- I volumi dichiarati in fondo salvano i dati MySQL tra un deploy e l'altro.
FrankenPHP, il sostituto insolente di Apache
Perché trascinarti Apache o Nginx dentro un container se FrankenPHP combina SAPI moderna, worker HTTP e supporto nativo per Symfony/Laravel?
- Performance: worker persistente, OPCache preriscaldato, HTTP/2 e presto HTTP/3.
- Semplicità: niente mandrie di
.conf; metti l'app in/app, esponi la porta 80 e basta. - Integrazione dev: niente più
symfony serve; FrankenPHP gestisce il ciclo di ricarica.
CI/CD senza il mantra “sulla mia macchina funziona”
Esegui docker compose run --rm lint per verificare il codice e distribuisci la stessa stack in produzione. Niente ambienti mutanti, niente caccia al porto 3306.
Chiusura cinica ma sincera
Continua a coccolare l'icona verde di WAMP se ti piace soffrire. Ma se vuoi consegnare più in fretta, versionare l'infra e combinare follie (Redis + Meilisearch + FrankenPHP + PostgreSQL) in tre righe, Docker è già pronto. Archivia gli installer preistorici, committa il tuo compose.yml e goditi onboarding da cinque minuti.