Come sincronizzare il tuo ambiente di sviluppo locale con la produzione
John Turner
John Turner
Quando la tua configurazione di sviluppo locale non corrisponde al tuo server di produzione, stai essenzialmente codificando alla cieca.
Potresti pensare che tutto funzioni. Probabilmente funziona, sulla tua macchina. Ma non è lì che conta.
Avere un processo affidabile per sincronizzare lo sviluppo locale con la produzione non è solo un "nice-to-have". È ciò che separa i professionisti dalle persone che incrociano le dita ogni volta che effettuano un deploy.
In questo post, ti guiderò attraverso metodi comprovati per mantenere sincronizzati i tuoi ambienti. Ne troverai uno che si adatta al tuo flusso di lavoro!
Ecco i punti chiave:
- La sincronizzazione degli ambienti elimina i problemi di compatibilità e individua i bug prima che gli utenti li vedano
- Puoi usare Duplicator per un flusso di lavoro di sincronizzazione locale semplice per principianti o GitHub + WP-CLI per il controllo da riga di comando
- Scarica sempre il database dalla produzione e carica solo le modifiche al codice per evitare di sovrascrivere i dati live
- I siti WordPress hanno tre parti da sincronizzare: codice (Git), database (WP-CLI) e file multimediali (rsync)
- Esegui sempre il backup prima di sincronizzare qualsiasi cosa, usa ambienti di staging per i test e mantieni un file .gitignore appropriato
Indice
Perché sincronizzare i tuoi ambienti locali e di produzione?
Potresti probabilmente sopravvivere senza sincronizzare gli ambienti. Molte persone lo fanno. Si limitano ad affrontare l'occasionale bug a sorpresa, il problema di produzione casuale che non si è verificato localmente e l'incertezza persistente ogni volta che rilasciano un aggiornamento.
Ma perché sottoporsi a tutto questo?
Mantenere sincronizzati i tuoi ambienti locali e di produzione elimina tonnellate di problemi. Ecco cosa ottieni effettivamente facendolo nel modo giusto.
Individua gli errori prima che vadano online
Un ambiente locale sincronizzato rispecchia la configurazione effettiva del tuo server di produzione. Avrà la stessa versione di PHP, la stessa struttura del database e gli stessi plugin nelle stesse versioni.
Questo conta più di quanto potresti pensare.
Quando lavori su una configurazione locale che corrisponde alla produzione, i problemi di compatibilità emergono immediatamente. Li individui alla tua scrivania, non davanti agli utenti. Questa è la differenza tra un piccolo inconveniente e un vero problema.
Un sandbox realistico per i test
Testare con dati fittizi va bene per creare funzionalità iniziali. Ma a un certo punto, devi vedere come si comportano effettivamente le cose.
Il contenuto reale degli utenti è disordinato. I cataloghi dei prodotti presentano strani casi limite.
Il tuo sito locale ha bisogno di quei dati reali per darti un quadro accurato di ciò che sta accadendo.
Scaricare dalla produzione ti fornisce i post, gli utenti e i prodotti effettivi con cui il tuo codice interagirà. Non stai più indovinando; stai testando contro la realtà.
Nessun problema di compatibilità
Ogni sviluppatore ha detto, "Ma sulla mia macchina funzionava" almeno una volta. È praticamente un meme a questo punto.
Ma è anche sintomo di ambienti che non corrispondono. Quando la tua configurazione locale è praticamente identica alla produzione, questa scusa scompare. Se funziona localmente, funziona online.
Quel tipo di sicurezza cambia il tuo modo di lavorare. Smetti di dubitare di ogni deploy.
Migliora la collaborazione del team
Quando lavori da solo, puoi cavartela con un processo disordinato. Aggiungi un secondo sviluppatore al gruppo e le cose si complicano rapidamente.
Un processo di sincronizzazione coerente significa che tutti partono dalla stessa base. State testando tutti sullo stesso database, utilizzando la stessa struttura di contenuti ed eseguendo la stessa configurazione dell'ambiente.
Senza questo, finisci con tre versioni diverse di "locale" e nessuno è sicuro di quale sia la più vicina alla produzione. Questa non è collaborazione; è caos.
Come sincronizzare il tuo ambiente locale con la produzione
Potresti farlo manualmente. Esporta il database tramite phpMyAdmin, scaricalo, importalo localmente e cerca e sostituisci manualmente tutti gli URL nel file SQL. Quindi, accedi via FTP al tuo server, zippa la cartella uploads, scaricala, estraila localmente...
Sono esausto solo a scriverlo.
I metodi manuali sono noiosi e rischiosi. Ti sfugge una sostituzione di URL e il tuo sito locale inizia a puntare alle risorse di produzione. Dimentichi di aggiornare correttamente un array serializzato e hai corrotto il tuo database.
C'è un modo migliore. Ecco come sincronizzare i tuoi ambienti di sviluppo locale e di produzione:
- Duplicator: plugin di migrazione con sostituzione automatica degli URL e installer guidati, perfetto per principianti o sincronizzazioni rapide
- GitHub + WP-CLI: controllo da riga di comando per sincronizzare il codice tramite Git, il database tramite esportazioni WP-CLI e i media tramite rsync, ideale per sviluppatori che desiderano un controllo granulare
Sincronizza siti locali e di produzione con Duplicator
Questo è il metodo più semplice, specialmente se non ti senti a tuo agio a vivere nel terminale.
Duplicator crea un'istantanea completa del tuo sito e ti fornisce un installer che gestisce automaticamente tutte le parti complicate. Non dovrai preoccuparti delle sostituzioni manuali degli URL o dei mal di testa della configurazione del database.

Trascinare dalla produzione al locale (il flusso di lavoro comune)
Questo è ciò che farai più spesso. Vuoi prendere lo stato attuale del tuo sito live e lavorarci localmente.
Inizia installando Duplicator Pro sul tuo sito di produzione e crea un nuovo backup completo del sito. Pensa a questo come a scattare un'istantanea dell'intero sito in questo preciso momento.

La creazione del backup richiede alcuni minuti a seconda delle dimensioni del tuo sito. Una volta completata, avrai due file: un archivio (solitamente un file .daf o .zip) e uno script di installazione (un file .php). Scarica entrambi.

Ora vai al tuo ambiente locale. Crea una directory vuota dove vuoi che risieda la tua copia locale. Inserisci entrambi i file, l'archivio e l'installer, in quella directory vuota.

Apri il tuo browser e naviga in quella directory. Qualcosa come http://localhost/mysite/installer.php. Si avvia la procedura guidata di installazione di Duplicator.

La procedura guidata ti accompagna nella connessione al tuo database locale e gestisce automaticamente tutte le sostituzioni degli URL.
Sa che il tuo sito di produzione era su https://mysite.com e il tuo sito locale è su http://localhost/mysite. Corregge ogni riferimento nel database senza che tu debba toccare nulla.
Cinque minuti dopo, hai una copia locale perfetta del tuo sito di produzione.
Push da locale a produzione
Questo flusso di lavoro va nella direzione opposta. Stai prendendo il tuo sito locale e lo stai distribuendo in produzione.
Fai attenzione qui. Questo è veramente solo per il lancio di nuovi siti o per redesign completi. Se hai un sito live con utenti attivi, probabilmente non vorrai farlo. Sovrascriverai i loro post, commenti e ordini recenti.
Se hai bisogno di inviare dal locale alla produzione, il processo è simile ma invertito.
Prima – e non posso sottolinearlo abbastanza – esegui un backup completo del tuo sito di produzione prima di fare qualsiasi altra cosa.
Quindi, crea un backup del tuo sito locale usando Duplicator e scaricalo. Carica entrambi i file di backup sul tuo server di produzione tramite FTP o trascina l'archivio nella pagina Importa.

Di nuovo: fallo solo se sei sicuro di voler sostituire completamente la produzione. Per assicurarti di poter facilmente annullare eventuali modifiche impreviste, assicurati di impostare un punto di ripristino.

Duplicator ti fornirà un URL di ripristino che ripristina un backup recente, anche se il tuo sito è completamente danneggiato.
Sincronizza siti locali e di produzione con GitHub e WP-CLI
Se ti senti a tuo agio con la riga di comando, questo metodo ti offre maggiore controllo e si adatta a un flusso di lavoro basato su Git.
Ecco il punto sui siti WordPress: sono composti da tre parti distinte che devono tutte essere sincronizzate separatamente.
- Codice: i file del tuo tema, i plugin e i file core di WordPress. Questo è ciò che Git gestisce.
- Database: tutti i tuoi contenuti, impostazioni e configurazioni. Git non lo tocca. Hai bisogno di WP-CLI.
- Media: tutto nella tua cartella /wp-content/uploads/. Nemmeno questo è in Git. Hai bisogno di rsync o di uno strumento simile.
Comprendere questa separazione è fondamentale. Git da solo non basta.
Il flusso di lavoro per scaricare dalla produzione
Esaminiamo come portare il tuo sito di produzione in locale.
Per il codice, è semplice. Se il tuo tema e i tuoi plugin personalizzati sono in un repository Git, esegui semplicemente:
git pull origin main
Il tuo codice locale ora corrisponde alla produzione.
Per il database, connettiti via SSH al tuo server di produzione ed esporta il database usando WP-CLI:
wp db export production-backup.sql
Scarica quel file .sql sulla tua macchina locale. Quindi importalo localmente:
wp db import production-backup.sql
Ma non hai ancora finito. Il tuo database contiene ancora tutti gli URL di produzione. Devi sostituirli con i tuoi URL locali:
wp search-replace 'https://mysite.com' 'http://localhost/mysite'
Questo comando di ricerca e sostituzione cerca in ogni tabella e campo, aggiornando gli URL ovunque appaiano. Gestisce anche correttamente i dati serializzati, il che è fondamentale per WordPress.
Salta questo passaggio e il tuo sito locale tenterà di caricare immagini dalla produzione, ti reindirizzerà al sito live e in generale si comporterà come se non sapesse dove si trova.
Per i file multimediali, usa rsync. È progettato per sincronizzare grandi directory in modo efficiente.
rsync -avz user@mysite.com:/path/to/wp-content/uploads/ ./wp-content/uploads/
Le opzioni -avz significano “modalità archivio, output dettagliato, compressione durante il trasferimento”. Questo comando scarica solo i file modificati, quindi le sincronizzazioni successive sono veloci.
Esegui questi tre passaggi (scarica codice, importa database, sincronizza media) e avrai una copia locale completa della produzione.
Migliori pratiche per garantire una sincronizzazione fluida e sicura
Puoi avere i migliori strumenti del mondo, ma non importa se li usi nel modo sbagliato.
Ho visto sviluppatori cancellare database di produzione perché hanno eseguito un push quando avrebbero dovuto eseguire un pull. Ho visto persone saltare i backup perché “è solo una rapida sincronizzazione” e poi passare il fine settimana a recuperare dati.
Non essere quella persona.
Queste migliori pratiche possono fare la differenza tra un flusso di lavoro fluido e un errore che può compromettere la carriera.
Esegui sempre prima il backup
Prima di sincronizzare qualsiasi cosa in qualsiasi direzione, effettua un backup. L'unica volta che lo salti, qualcosa andrà storto.
Duplicator rende tutto questo facile: è sia un plugin di migrazione che di backup. Il primo passo in ogni migrazione push o pull sarà un backup completo del sito, proteggendo il tuo sito.
Se succede qualcosa, premi il pulsante Ripristina con un clic.

Oppure, carica entrambi i file di backup sullo stesso server. Esegui l'installer e segui le istruzioni di ripristino.
Se stai usando strumenti da riga di comando, esegui un rapido wp db export prima di fare qualsiasi altra cosa.
Cinque minuti per creare un backup possono farti risparmiare giorni di lavoro di recupero.
Scarica i dati, carica il codice
Ecco il flusso di lavoro professionale standard: scarica il database e i file multimediali dalla produzione al locale. Carica le modifiche al codice sulla produzione solo tramite Git.
Dovresti raramente caricare il tuo database locale sulla produzione, a meno che tu non stia lanciando un sito completamente nuovo.
Perché? Perché la produzione ha dati reali che cambiano costantemente. Se sovrascrivi il database di produzione con la tua copia locale, tutta quell'attività recente scomparirà.
Usa un ambiente di staging
Il flusso di lavoro ideale non è Locale » Produzione. È Locale » Staging » Produzione.
Un ambiente di staging è una copia del tuo sito di produzione che risiede su un server effettivo ma non è accessibile pubblicamente. È il tuo terreno di prova finale prima che le modifiche vadano online.
Sviluppi localmente. Quindi, testi sullo staging con la configurazione del server reale e i dati di produzione recenti. Solo dopo che tutto è stato verificato sullo staging, distribuisci sulla produzione.
Questo aggiunge un buffer di sicurezza. Se qualcosa si rompe sullo staging, nessun utente lo vede. Lo rilevi e lo correggi prima che abbia importanza.
Non tutti i progetti necessitano di staging, specialmente i siti piccoli. Ma per qualsiasi cosa con traffico reale o funzionalità e-commerce, vale la pena impostarlo.
Usa un file .gitignore
Se stai usando Git, devi dirgli cosa non tracciare.
Il tuo file wp-config.php contiene credenziali del database diverse per ogni ambiente. Non dovrebbe essere nel controllo di versione.
La tua cartella /wp-content/uploads/ può contenere gigabyte di immagini e file. Anche questi non appartengono a Git: per questo serve rsync.
Crea un file .gitignore nella root del tuo repository e aggiungi almeno questi:
wp-config.php
.htaccess
wp-content/uploads/
*.log
Questo mantiene il tuo repository pulito e ti impedisce di eseguire accidentalmente il commit di informazioni sensibili o di gonfiare il tuo repository con file binari.
Domande frequenti (FAQ)
Come si sincronizza la libreria multimediale?
Se stai usando Duplicator, la libreria multimediale è inclusa automaticamente nei backup completi del sito. Quando sposti i backup da o verso la produzione, sposterai anche i tuoi file multimediali. Per un flusso di lavoro manuale, rsync è lo strumento migliore perché trasferisce solo i file che sono cambiati dall'ultima sincronizzazione.
Come si sincronizza lo sviluppo locale con la produzione su GitHub?
GitHub (Git) sincronizza solo il codice. Non sincronizza il database o la libreria multimediale: hai bisogno di un processo separato per questi, come WP-CLI e rsync.
Git è sufficiente per sincronizzare un sito WordPress?
No. Gestisce solo il codice, che è solo una delle tre parti essenziali. Il tuo sito sarà rotto senza il database e i file multimediali.
Con quale frequenza dovrei eseguire il pull dalla produzione al mio sito locale?
Dovresti eseguire il pull del tuo sito dalla produzione al locale prima di iniziare qualsiasi nuova funzionalità o attività. Questo evita di compromettere il tuo sito live.
Perfeziona il tuo flusso di lavoro di sincronizzazione WordPress
Andare oltre i metodi manuali è uno di quei punti di svolta nella tua carriera di sviluppo. Smetti di essere qualcuno che copia file in giro e incrocia le dita. Diventi qualcuno con un processo.
Un flusso di lavoro ripetibile, sia che tu stia usando uno strumento come Duplicator o eseguendo comandi nel terminale, sostituisce l'ansia da distribuzione con la fiducia.
Il tuo io futuro ti ringrazierà la prossima volta che avrai bisogno di testare una funzionalità con dati di produzione reali, o di scaricare i contenuti più recenti, o di distribuire senza stress.
Pronto a smettere di destreggiarti tra strumenti da riga di comando e preoccuparti se hai saltato un passaggio? Duplicator Pro ti offre un toolkit completo e affidabile per migrare ed eseguire il backup del tuo sito.
Crea un backup completo del sito, invialo direttamente allo storage cloud e distribuiscilo in una nuova posizione con un installer semplice e guidato che gestisce tutto il lavoro pesante. Dai un'occhiata a Duplicator Pro per semplificare il tuo flusso di lavoro oggi stesso!
Mentre sei qui, penso che ti piaceranno queste altre risorse WordPress selezionate con cura:
- Come Usare WordPress CLI: Padroneggia la Riga di Comando
- Come spostare un sito WordPress live su un host locale (Il modo facile)
- Come spostare un sito WordPress locale su un server live
- Scrivi codice in modo più intelligente, non più difficile: strumenti per sviluppatori WordPress per ogni professionista
- Come uno sviluppatore migra facilmente negozi online con 150.000 prodotti