[I backup in cloud sono appena diventati più semplici: Duplicator Cloud elimina l'archiviazione di terze parti
[I backup in cloud sono appena diventati più semplici: Duplicator Cloud elimina l'archiviazione di terze parti
John Turner
John Turner
Quando la configurazione di sviluppo locale non corrisponde al server di produzione, è come se si scrivesse codice alla cieca.
Potresti pensare che tutto funzioni. Probabilmente funziona, sul tuo computer. Ma non è questo che conta.
Avere un processo affidabile per sincronizzare lo sviluppo locale con la produzione non è solo un optional. È ciò che distingue i professionisti da chi incrocia le dita ogni volta che effettua un deployment.
In questo post ti illustrerò alcuni metodi collaudati per mantenere sincronizzati i tuoi ambienti. Troverai sicuramente quello più adatto al tuo flusso di lavoro!
Ecco i punti salienti:
Probabilmente potresti sopravvivere senza sincronizzare gli ambienti. Molte persone lo fanno. Devono solo affrontare qualche bug occasionale, problemi di produzione casuali che non si verificano a livello locale e la fastidiosa incertezza ogni volta che pubblicano un aggiornamento.
Ma perché sottoporsi a tutto questo?
Mantenere sincronizzati gli ambienti locali e di produzione elimina tantissimi problemi. Ecco cosa si ottiene effettivamente facendo le cose nel modo giusto.
Un ambiente locale sincronizzato rispecchia la configurazione effettiva del tuo server di produzione. Avrà la stessa versione PHP, la stessa struttura del database e gli stessi plugin nelle stesse versioni.
Questo è più importante di quanto potresti pensare.
Quando si lavora su una configurazione locale che corrisponde alla produzione, i problemi di compatibilità emergono immediatamente. Li si individua alla propria scrivania, non davanti agli utenti. Questa è la differenza tra un piccolo inconveniente e un problema reale.
Il test con dati fittizi va bene per creare le funzionalità iniziali. Ma a un certo punto, è necessario vedere come si comportano effettivamente le cose.
I contenuti degli utenti reali sono disordinati. I cataloghi dei prodotti presentano casi limite strani.
Il tuo sito locale ha bisogno di dati reali per fornirti un quadro accurato di ciò che sta accadendo.
La sincronizzazione dalla produzione ti fornisce i post, gli utenti e i prodotti reali con cui interagirà il tuo codice. Non dovrai più fare supposizioni, ma potrai testare sulla base della realtà.
Ogni sviluppatore ha detto almeno una volta: "Ma sul mio computer funzionava". Ormai è diventato praticamente un meme.
Ma è anche un sintomo di ambienti non compatibili. Quando la configurazione locale è sostanzialmente identica a quella di produzione, questa scusa non è più valida. Se funziona in locale, funziona anche in produzione.
Questo tipo di sicurezza cambia il tuo modo di lavorare. Smetti di ripensare ogni implementazione.
Quando lavori da solo, puoi cavartela anche con un processo disordinato. Aggiungi un secondo sviluppatore al mix e le cose si complicano rapidamente.
Un processo di sincronizzazione coerente significa che tutti partono dalla stessa base. Tutti eseguono i test sullo stesso database, utilizzando la stessa struttura dei contenuti e utilizzando la stessa configurazione dell'ambiente.
Senza questo, si finisce con tre diverse versioni di "locale" e nessuno è sicuro di quale sia la più vicina alla produzione. Questa non è collaborazione, è caos.
È possibile farlo manualmente. Esportare il database tramite phpMyAdmin, scaricarlo, importarlo localmente e trovare e sostituire manualmente tutti gli URL nel file SQL. Quindi accedere al server tramite FTP, comprimere la cartella uploads, scaricarla, estrarla localmente...
Sono esausto solo a scriverlo.
I metodi manuali sono noiosi e rischiosi. Se si dimentica di sostituire un URL, il sito locale inizierà a puntare alle risorse di produzione. Se si dimentica di aggiornare correttamente un array serializzato, si danneggerà il database.
C'è un modo migliore. Ecco come sincronizzare gli ambienti di sviluppo e produzione locali:
Questo è il metodo più semplice, soprattutto se non ti senti a tuo agio a vivere nel terminal.
Duplicator crea un'istantanea completa del tuo sito e ti fornisce un programma di installazione che gestisce automaticamente tutte le parti più complesse. Non dovrai preoccuparti di sostituzioni manuali degli URL o di configurazioni del database complicate.
Questa è l'operazione che effettuerai più spesso. Desideri acquisire 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. Consideralo come se fosse un'istantanea dell'intero sito in questo preciso momento.

La creazione del backup richiede alcuni minuti a seconda delle dimensioni del sito. Una volta completata, avrai due file: un archivio (di solito 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. Trascina entrambi i file, l'archivio e il programma di installazione, in quella directory vuota.

Apri il browser e vai a quella directory. Qualcosa del tipo http://localhost/mysite/installer.php. Si avvierà la procedura guidata di installazione di Duplicator.

La procedura guidata ti aiuta a connetterti al tuo database locale e gestisce automaticamente tutte le sostituzioni degli URL.
Sa che il tuo sito di produzione era https://mysite.com e che il tuo sito locale è http://localhost/mysite. Correggere ogni riferimento nel database senza che tu debba toccare nulla.
Cinque minuti dopo, avrai una copia locale perfetta del tuo sito di produzione.
Questo flusso di lavoro va nella direzione opposta. Si prende il sito locale e lo si distribuisce in produzione.
Fai attenzione. Questa operazione è consigliabile solo per il lancio di nuovi siti o per riprogettazioni complete. Se hai un sito attivo con utenti attivi, probabilmente non ti conviene farlo. Sovrascriveresti i loro post, commenti e ordini recenti.
Se è necessario trasferire i dati locali alla produzione, il processo è simile ma inverso.
Prima di tutto, e non lo sottolineerò mai abbastanza, esegui un backup completo del tuo sito di produzione prima di fare qualsiasi altra cosa.
Quindi, crea un backup del tuo sito locale utilizzando Duplicator e scaricalo. Carica entrambi i file di backup sul tuo server di produzione tramite FTP o trascina l'archivio nella pagina Importa.

Ancora una volta: procedete in questo modo solo se siete sicuri di voler sostituire completamente la produzione. Per essere certi di poter ripristinare facilmente eventuali modifiche impreviste, assicuratevi di impostare un punto di ripristino.

Duplicator ti fornirà un URL di ripristino che ripristinerà un backup recente, anche se il tuo sito è completamente danneggiato.
Se hai dimestichezza con la riga di comando, questo metodo ti offre un maggiore controllo e si adatta a un flusso di lavoro basato su Git.
Ecco come funzionano i siti WordPress: sono composti da tre parti distinte che devono essere sincronizzate separatamente.
Comprendere questa separazione è fondamentale. Git da solo non basta.
Vediamo come trasferire il tuo sito di produzione a livello locale.
Per il codice, è semplice. Se il tema e i plugin personalizzati si trovano in un repository Git, basta eseguire:
git pull origin main
Il codice locale ora corrisponde alla produzione.
Per il database, accedi al tuo server di produzione tramite SSH ed esporta il database utilizzando WP-CLI:
wp db export production-backup.sql
Scarica il file .sql sul tuo computer 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 setaccia ogni tabella e campo, aggiornando gli URL ovunque compaiano. Gestisce correttamente anche i dati serializzati, cosa fondamentale per WordPress.
Se salti questo passaggio, il tuo sito locale proverà a caricare le 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 in modo efficiente directory di grandi dimensioni.
rsync -avz [email protected]:/path/to/wp-content/uploads/ ./wp-content/uploads/
I flag -avz significano "modalità archivio, output dettagliato, comprimi durante il trasferimento". Questo comando scarica solo i file che sono stati modificati, quindi le sincronizzazioni successive sono veloci.
Esegui questi tre passaggi (estrai il codice, importa il database, sincronizza i media) e otterrai una copia locale completa della produzione.
Puoi avere i migliori strumenti del mondo, ma non serve a nulla se li usi nel modo sbagliato.
Ho visto sviluppatori cancellare interi database di produzione perché hanno eseguito il push quando invece avrebbero dovuto eseguire il pull. Ho visto persone saltare i backup perché "è solo una sincronizzazione veloce" e poi passare il fine settimana a recuperare i dati.
Non essere quel tipo di persona.
Queste best practice possono fare la differenza tra un flusso di lavoro fluido e un errore che può compromettere la carriera.
Prima di sincronizzare qualsiasi cosa in qualsiasi direzione, esegui un backup. L'unica volta che lo salterai, qualcosa andrà storto.
Duplicator semplifica questa operazione: è sia un plugin di migrazione che di backup. Il primo passo in ogni migrazione push o pull sarà un backup completo del sito, a protezione del tuo sito.
Se succede qualcosa, premi il pulsante Ripristina con un clic.

Oppure, carica entrambi i file di backup sullo stesso server. Esegui il programma di installazione e segui le istruzioni di ripristino.
Se stai utilizzando strumenti da riga di comando, esegui rapidamente wp db export prima di fare qualsiasi altra cosa.
Cinque minuti dedicati alla creazione di un backup possono farti risparmiare giorni di lavoro per il ripristino.
Ecco il flusso di lavoro professionale standard: scaricare il database e i file multimediali dalla produzione al locale. Inviare solo le modifiche al codice alla produzione tramite Git.
È consigliabile trasferire raramente il database locale in produzione, a meno che non si stia lanciando un sito completamente nuovo.
Perché? Perché la produzione dispone di dati reali che cambiano continuamente. Se sovrascrivi il database di produzione con la tua copia locale, tutte le attività recenti andranno perse.
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 reale ma non è accessibile al pubblico. È il tuo banco di prova finale prima che le modifiche vengano pubblicate.
Sviluppate localmente. Quindi, eseguite i test in fase di staging con la configurazione reale del server e i dati di produzione recenti. Solo dopo aver verificato che tutto funzioni correttamente in fase di staging, procedete con l'implementazione in produzione.
Questo aggiunge un margine di sicurezza. Se qualcosa si rompe nella fase di staging, nessun utente lo vedrà. Lo individui e lo risolvi prima che diventi un problema.
Non tutti i progetti necessitano di staging, specialmente quelli di piccole dimensioni. Tuttavia, per qualsiasi progetto con traffico reale o funzionalità di e-commerce, vale la pena configurarlo.
Se utilizzi Git, devi indicargli cosa non tracciare.
Il tuo file wp-config.php contiene credenziali di database diverse per ogni ambiente. Non dovrebbe essere sottoposto al controllo di versione.
La cartella /wp-content/uploads/ può contenere gigabyte di immagini e file. Anche questi non appartengono a Git: è a questo che serve rsync.
Crea un file .gitignore nella root del tuo repository e aggiungi almeno questi elementi:
wp-config.php
.htaccess
wp-content/uploads/
*.log
Questo mantiene pulito il tuo repository e ti impedisce di commettere accidentalmente informazioni sensibili o di ingombrare il tuo repository con file binari.
Se utilizzi Duplicator, la libreria multimediale viene inclusa automaticamente nei backup completi del sito. Quando trasferisci i backup da o verso l'ambiente di produzione, trasferirai anche i tuoi file multimediali. Per un flusso di lavoro manuale, rsync è lo strumento migliore perché trasferisce solo i file che sono stati modificati dall'ultima sincronizzazione.
GitHub (Git) sincronizza solo il codice. Non sincronizza il database o la libreria multimediale: per questi elementi è necessario un processo separato, come WP-CLI e rsync.
No. Gestisce solo il codice, che è solo una delle tre parti essenziali. Il tuo sito non funzionerà senza il database e i file multimediali.
Prima di avviare qualsiasi nuova funzionalità o attività, è necessario trasferire il sito dalla produzione all'ambiente locale. In questo modo si evita di danneggiare il sito live.
Andare oltre i metodi manuali è uno di quei punti di svolta nella tua carriera di sviluppatore. Smetti di essere qualcuno che copia file e incrocia le dita. Diventi qualcuno con un processo.
Un flusso di lavoro ripetibile, sia che si utilizzi uno strumento come Duplicator o che si eseguano comandi nel terminale, sostituisce l'ansia legata alla distribuzione con la sicurezza.
Il tuo io futuro ti ringrazierà la prossima volta che dovrai testare una funzionalità con dati di produzione reali, scaricare i contenuti più recenti o eseguire l'implementazione senza alcuno stress.
Sei pronto a smettere di destreggiarti tra strumenti a riga di comando e preoccuparti di aver saltato un passaggio? Duplicator Pro ti offre un kit di strumenti completo e affidabile per la migrazione e il backup del tuo sito.
Crea un backup completo del sito, invialo direttamente al cloud storage e distribuiscilo in una nuova posizione con un semplice programma di installazione guidato che si occupa di tutto il lavoro pesante. Dai un'occhiata a Duplicator Pro per semplificare il tuo flusso di lavoro oggi stesso!
Mentre siete qui, penso che vi piaceranno queste altre risorse WordPress selezionate a mano:
Divulgazione: I nostri contenuti sono sostenuti dai lettori. Ciò significa che se cliccate su alcuni dei nostri link, potremmo guadagnare una commissione. Raccomandiamo solo prodotti che riteniamo possano apportare un valore aggiunto ai nostri lettori.