WPML 5.0 Beta – Un’esperienza riprogettata e una traduzione automatica più intelligente
WPML 5.0 è il più grande aggiornamento che abbiamo rilasciato da anni.
Con Docker Compose, Xdebug e PhpStorm, puoi creare un ambiente di sviluppo locale riproducibile, isolato e facilmente gestibile che rispecchia un server di produzione, migliorando la qualità dei tuoi progetti WordPress.
Ciao a tutti gli sviluppatori WordPress e agli utenti avanzati! Oggi sono entusiasta di condividere un tutorial completo ma semplice su come configurare un ambiente di sviluppo locale per WordPress utilizzando Docker Compose. Essendo entrato di recente a far parte del dinamico team di OnTheGoSystems, ho deciso di portare con me la mia zona di comfort, che è l’essenza di questa configurazione.
L’obiettivo era semplice: sviluppare una configurazione in cui potessi avere un controllo granulare sui miei strumenti di sviluppo, integrando Xdebug e WP-CLI con l’immagine Docker ufficiale di WordPress. Questa configurazione non ha lo scopo di reinventare la ruota, ma di personalizzarla per allinearla alle preferenze individuali e agli stili di lavoro. Spero che questa guida ti sia utile per configurare un ambiente simile, migliorando il tuo percorso nello sviluppo di WordPress.
Per ottenere il massimo da questo tutorial, dovrai avere le seguenti dipendenze installate:
Il nostro obiettivo è stabilire un ambiente di sviluppo locale per WordPress che sia isolato, riproducibile e facilmente gestibile. Docker costituisce la spina dorsale di questa configurazione, fornendo l’infrastruttura per contenere e gestire la nostra applicazione. Xdebug e PhpStorm sono i pezzi complementari di questo puzzle, offrendo funzionalità avanzate di sviluppo e debug del codice PHP.
Il nostro viaggio inizierà con la creazione di un Dockerfile che estende l’immagine Docker ufficiale di WordPress. Miglioreremo questa immagine incorporando Xdebug e WP-CLI, strumenti fondamentali per le nostre attività di sviluppo e debug di WordPress.
Successivamente, prepareremo un file Docker Compose per orchestrare due servizi chiave: WordPress e MySQL. E, che tu ci creda o no, questo è essenzialmente tutto!
La bellezza di questa configurazione è che si traduce in un ambiente di sviluppo locale che non solo rispecchia un server di produzione, ma è anche facilmente replicabile. Ciò significa che possiamo duplicare l’esatta configurazione su più ambienti o macchine con facilità, garantendo coerenza e riducendo i problemi legati alla configurazione.
Il nostro viaggio inizia con la creazione di un nuovo Dockerfile. Questo file istruisce Docker su come costruire la nostra immagine. Ecco la configurazione di base da cui parto di solito:
# Use the official WordPress image as a parent image
FROM wordpress:latest
# Install Xdebug
RUN pecl install xdebug
# Install WP-CLI
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar && \
chmod +x wp-cli.phar && \
mv wp-cli.phar /usr/local/bin/wp
# Copy xdebug.ini into the container
COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
In questo Dockerfile, partiamo dall’immagine ufficiale di WordPress. Installiamo poi Xdebug e WP-CLI separatamente per chiarezza e manutenibilità. Il file di configurazione di Xdebug (xdebug.ini) viene copiato nella directory appropriata nel container. Questo costituisce la base della mia configurazione di riferimento per un ambiente di sviluppo locale per WordPress.
Ora che abbiamo installato Xdebug nella nostra immagine Docker, dobbiamo configurarlo per funzionare nel nostro ambiente di sviluppo locale. Ciò comporta la creazione di un file xdebug.ini con le seguenti impostazioni:
ini zend_extension=xdebug xdebug.mode=debug xdebug.client_port=9003 xdebug.start_with_request=yes
Queste impostazioni abilitano l’estensione Xdebug, la impostano per avviare il debug a ogni richiesta e definiscono la porta del client a cui dovrebbe connettersi (in questo caso, 9003). Potresti aver notato che non abbiamo ancora specificato un client_host, ma non temere, entrerà in gioco molto presto nel nostro processo di configurazione.
Successivamente, creeremo un file docker-compose.yml che configura i nostri servizi WordPress e MySQL:
yaml
version: '3'
services:
# MySQL Service
mysql:
image: mysql:latest
container_name: mysql_container
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
# WordPress Service
wordpress:
depends_on:
- mysql
image: wordpress:latest
container_name: wp_container
volumes:
- ./wp_data:/var/www/html
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
WORDPRESS_DEBUG: 1
XDEBUG_CONFIG: client_host=host.docker.internal
ports:
- "8000:8000"
volumes:
db_data:
In questo file, abbiamo definito due servizi: MySQL e WordPress. Entrambi questi servizi hanno nomi di container univoci, per un riferimento e una gestione più semplici.
La direttiva restart: always garantisce che il servizio si riavvii sempre se si interrompe in modo imprevisto. Se viene interrotto manualmente, viene riavviato solo quando il container viene riavviato manualmente.
Il servizio MySQL monta un volume Docker (db_data), garantendo un’archiviazione persistente anche se il container viene eliminato. Per il servizio WordPress, stiamo montando una directory locale (./wp_data) nel container. Ciò significa che qualsiasi modifica nei file di WordPress sul nostro sistema locale si rifletterà nel container.
Abbiamo aggiunto due variabili d’ambiente aggiuntive per il servizio WordPress: WORDPRESS_DEBUG per abilitare il debug di WordPress e XDEBUG_CONFIG per specificare l’host del client per Xdebug. Il client_host è impostato su host.docker.internal, che è un nome DNS speciale che indirizza all’indirizzo IP interno dell’host, consentendo a Xdebug di comunicare con il nostro IDE sull’host.
Tieni presente che l’impostazione client_host è pensata per Windows e macOS. Per Linux, un’alternativa comune è sostituire host.docker.internal con l’indirizzo IP effettivo della tua macchina, che può essere ottenuto tramite il comando da terminale ip addr show.
Una volta che il tuo Dockerfile, il file di configurazione di Xdebug e il file Docker Compose sono pronti, è il momento di dare vita al tuo ambiente di sviluppo locale per WordPress.
Per farlo, naviga semplicemente nella directory contenente il tuo file Docker Compose nel terminale ed esegui il seguente comando:
bash docker-compose up -d
Questo comando istruirà Docker ad avviare i tuoi servizi in background.
Al termine dell’esecuzione, avrai un sito WordPress in esecuzione sulla tua macchina locale, accessibile tramite http://localhost:8000. Qualsiasi modifica apportata ai tuoi file PHP di WordPress si rifletterà ora su questo sito, offrendo un modo semplice ed efficace per sviluppare ed eseguire il debug della tua applicazione WordPress.
Inoltre, anche il tuo servizio MySQL sarà attivo e funzionante, accessibile sulla porta 3306. Questo fornisce un database MySQL perfettamente funzionante per la tua applicazione WordPress, replicando un ambiente realistico per le tue esigenze di sviluppo.
Per coloro che vogliono approfondire un po’ di più la propria configurazione PHP, possiamo introdurre un file phpinfo.php nella nostra immagine Docker. Quando vi si accede, questo file presenterà una panoramica completa delle tue impostazioni PHP.
Per aggiungere il file phpinfo.php, dovrai prima crearlo nella stessa directory del tuo Dockerfile. Il file dovrebbe contenere il seguente codice PHP:
<?php phpinfo(); ?>
Successivamente, aggiungi la seguente riga al tuo Dockerfile:
# Bonus: Copy phpinfo.php into the container COPY phpinfo.php /var/www/html/phpinfo.php
Questo comando copierà il file phpinfo.php nella directory principale di WordPress all’interno dell’immagine Docker.
Per assicurarti che queste modifiche abbiano effetto, dovrai ricostruire la tua immagine Docker e riavviare i servizi Docker Compose. Esegui i seguenti comandi nel tuo terminale:
bash docker-compose down docker-compose up -d --build
Il comando docker-compose down interrompe e rimuove i tuoi attuali container Docker. Successivamente, docker-compose up -d –build ricostruisce l’immagine Docker con il file phpinfo.php appena aggiunto e riavvia i tuoi servizi WordPress e MySQL in background.
Ora puoi accedere al file phpinfo.php navigando su http://localhost:8000/phpinfo.php nel tuo browser web. Qui vedrai una pagina dettagliata che delinea la tua configurazione PHP, che può essere una risorsa preziosa per il debug e la verifica.
Ora che hai configurato il tuo ambiente di sviluppo locale per WordPress con Docker, Xdebug e PhpStorm, puoi iniziare a eseguire il debug del tuo sito WordPress. Ecco un rapido riepilogo di come iniziare:
Concludendo questo tutorial, spero che diventi una risorsa preziosa per te come lo è stata per me nel mio percorso. La possibilità di personalizzare questa configurazione, come abbiamo fatto aggiungendo il file phpinfo.php, apre una miriade di possibilità, rendendo il nostro processo di sviluppo più solido ed efficiente. Tutto il codice è disponibile in questo repository GitHub. Non esitare a farne il pull, provarlo e suggerire miglioramenti!
Personalmente uso un sistema operativo Ubuntu, ma la bellezza di questa configurazione è che, grazie a Docker, non ha importanza! Grazie al fatto che Docker può essere eseguito su qualsiasi sistema operativo allo stesso modo, che tu preferisca macOS, Windows o Linux, la configurazione e l’uso sono gli stessi!
Grazie per avermi accompagnato in questa guida passo passo. Spero di avere tue notizie sulle tue esperienze o su eventuali suggerimenti che potresti avere per migliorare ulteriormente questa configurazione. Ricorda, la crescita prospera sulla conoscenza condivisa e sullo spirito di collaborazione.
Buona programmazione e continuiamo a creare fantastiche esperienze WordPress insieme!