Docker per lo Sviluppo WordPress: Guida Completa alla Configurazione

Come configurare un ambiente di sviluppo WordPress basato su Docker con PHP, MySQL, Redis e MailHog per lo sviluppo locale di plugin e temi.

Sviluppare WordPress in locale è sempre stato una sfida. I diversi membri del team usano sistemi operativi diversi. Le versioni di PHP variano. Le configurazioni dei database differiscono. Il risultato è il classico problema dello sviluppatore: «funziona sul mio computer». Docker risolve questo problema impacchettando l'intero ambiente di sviluppo — PHP, MySQL, Redis, Apache o Nginx — in container che girano in modo identico su qualsiasi sistema.

Questa guida copre come configurare un ambiente di sviluppo WordPress basato su Docker per lo sviluppo di plugin e temi.

Perché Docker per WordPress?

Docker fornisce ambienti riproducibili. Ogni sviluppatore del tuo team esegue la stessa versione di PHP, la stessa versione del database, lo stesso server web. Niente più sessioni di debug «funziona sul mio computer». Puoi passare da una versione di PHP all'altra con una singola modifica di configurazione. Puoi aggiungere Redis, Memcached o Elasticsearch con poche righe di configurazione.

Docker isola anche i progetti l'uno dall'altro. Ogni progetto WordPress ha i propri container, il proprio database, le proprie dipendenze. Il sito di un cliente che esegue WordPress 6.4 con PHP 8.1 non entra in conflitto con il tuo progetto di plugin che esegue WordPress 6.5 con PHP 8.3.

Lo Stack Docker Compose

Una configurazione Docker di base per WordPress usa Docker Compose per definire quattro servizi: un server web (Nginx o Apache), PHP-FPM, MySQL o MariaDB e, opzionalmente, Redis per l'object caching. L'immagine Docker ufficiale di WordPress gestisce la configurazione di PHP e WordPress. Usa l'immagine ufficiale MySQL o MariaDB per il database e l'immagine ufficiale Redis per la cache.

Monta la directory del tuo plugin o tema come volume così che le modifiche si riflettano immediatamente senza ricostruire il container. Usa variabili d'ambiente nel tuo docker-compose.yml per i valori di configurazione che differiscono tra gli ambienti.

File di Configurazione

Il file docker-compose.yml definisce i tuoi servizi, reti e volumi. Un Dockerfile separato per PHP ti permette di installare estensioni come imagick o xdebug. Un file nginx.conf configura il server web per i permalink di WordPress. Un file php.ini imposta i valori di configurazione PHP come upload_max_filesize e memory_limit.

Tieni questi file di configurazione nel version control insieme al tuo progetto. I nuovi membri del team dovrebbero poter clonare il repository, eseguire docker-compose up e avere un'installazione WordPress funzionante in pochi minuti.

Aggiungere Xdebug per il Debug

Xdebug si integra con Docker per il debug passo-passo del codice WordPress. Aggiungi Xdebug al tuo Dockerfile PHP, configuralo in php.ini e imposta la chiave IDE e l'IP host nella configurazione. L'estensione PHP Debug di VS Code si connette al container Docker automaticamente quando avvii il debug.

Con Xdebug funzionante in Docker, puoi impostare breakpoint nel codice del tuo plugin, ispezionare le variabili, avanzare passo-passo nelle chiamate di funzione e fare debug delle richieste WordPress in tempo reale — la stessa esperienza del debug su un'installazione locale, ma con la coerenza di un ambiente containerizzato.

Test delle Email con MailHog

WordPress invia email per il reset delle password, la registrazione di nuovi utenti e le notifiche dei plugin. In sviluppo, queste email non dovrebbero essere effettivamente consegnate. MailHog è un server SMTP fittizio che cattura le email in uscita e le mostra in un'interfaccia web. Aggiungi MailHog come servizio nel tuo stack Docker Compose e configura WordPress per usarlo come server SMTP.

Accedi all'interfaccia web di MailHog su localhost:8025 per visualizzare le email catturate, ispezionarne il contenuto e fare debug dei problemi legati alle email senza rischiare una consegna accidentale a destinatari reali.

Il punto fondamentale

Docker toglie il dolore dalla configurazione dell'ambiente WordPress. Garantisce coerenza in tutto il team, isola i progetti l'uno dall'altro e rende l'onboarding dei nuovi sviluppatori una questione di minuti piuttosto che di ore. Inizia con un docker-compose.yml di base con WordPress, MySQL e PHP. Aggiungi Redis, MailHog e Xdebug quando ti servono. Una volta provato lo sviluppo WordPress basato su Docker, non tornerai mai più alla configurazione manuale.

Lascia una risposta

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *