Seguici su Telegram, ne vale la pena ❤️ ➡ @trovalost
Vai al contenuto

Staging: come creare un sito test sincronizzato con quello originale

Uno staging site può essere molto utile per creare un ambiente test, del tutto equivalente a quello del sito web originale, in modo da poter effettuare prove di plugin, theme e modifiche/miglioramenti in generale senza intaccare l’originale, e senza essere costretti a fare modifiche “in corsa” sulla versione pubblica delle pagine web. Ne parleremo in modo approfondito questo nuovo articolo.

Che cos’è uno staging site

Uno staging site (staging è una parola inglese che significa più o meno “messa in scena”) può essere visto come una copia del sito originale da utilizzare e gestire in separata sede, in modo ad esempio da poter testare un plugin scritto da noi, una modifica al theme oppure una serie di modifiche ai contenuti che desideriamo mostrare in un colpo solo, online, successivamente. Sostanzialmente si tratta di una copia del sito separata da quella originale, sia in termini di database che in termini di codice PHP, la quale può essere utilizzata per testare alcune modifiche con calma, per poi riportarle – mediante opportune procedure – nel sito originale. Lo staging site consente pertanto di organizzare al meglio il nostro lavoro, creando una copia del sito ad esempio in WordPress, aggiornarlo come vogliamo e poi riportare la nuova versione nel sito originale.

Problemi da affrontare per creare uno staging site

Che lo staging sia una soluzione comoda non c’è dubbio, anche perchè è in grado di evitare la circostanza di dover modificare un sito online, magari visitato da moltissimi già  adesso: in questi casi senza staging è problematico intervenire, poichè si è costretti a mettere il sito offline mentre ci stiamo lavorando, ed i visitatori potrebbero vedere sgradevoli o incomprensibili errori mentre noi, giustamente, da programmatori abbiamo le nostre tempistiche di lavoro che potrebbero anche durare diverse ore, giorni o settimane per essere completate a dovere.

wordpress staging site plugin

Di fatto, lo staging site (che può essere visto come un sito “di test”) crea una copia conforme del sito originale (quello “live”) separata ed indipendente, in cui il database è stato clonato o “dumpato” ed importato ad esempio su localhost, mentre i file sono stati scaricati in locale mediante FTP per essere utilizzati nel computer locale.

Staging site in locale per un sito online

L’idea sembra essere ideale sotto vari punti di vista, anche se presenta un problema abbastanza grosso alla base: se infatti è facile sincronizzare le modifiche dei file (in effetti basta caricare via FTP tutte le modifiche che si sono fatte un po’ per volta, al limite usando un plugin come remote FTP di Atom.io, in modo da poter automatizzare il processo durante la modifica dei file in tempo reale), è complicato sincronizzare le modifiche del database. Se provate ad utilizzare direttamente dump e file di un sito remoto in locale, ad esempio WordPress, non potrà  funzionare direttamente. Non fosse altro che gli URL sono differenti (ad esempio miosito.it in produzione, localhost/miosito in staging), e i CMS come WordPress non sono progettati in modo ottimale sotto questo punto di vista, dato che riportano più volte dentro al dump l’indirizzo del sito, più volte.

Come fare, allora? In teoria uno dovrebbe scaricare il dump, copiarsi i file da remoto a locale, aggiornare i parametri dei file di configurazione del database  e sostituire nel dump .sql (con un buon editor di testo) le occorrenze dell’URL remote con quelle dell’URL locale. Non è una tecnica alla portata di chiunque ma è quella che, il più delle volte, utilizzo nel mio lavoro; non fosse altro che non richiede tool esterni, è abbastanza safe e permette peraltro di disporre automaticamente di copie di backup (file + db) funzionanti del sito in produzione (e quelli non sono mai abbastanza, se ci pensate e se lavorate parecchio per gradi, con i vostri aggiornamenti).

Hosting con soluzioni di staging integrate

Esiste anche una seconda possibilità : possiamo sfruttare un servizio di hosting che supporti nativamente lo staging. Costano un po’ di più (quasi il doppio dei condivisi classici), ma presentano il vantaggio di poter automatizzare almeno in parte il processo, e potrete facilmente clonare il vostro sito originale su una versione privata (sempre sullo stesso indirizzo, per intenderci miosito.it/testarea) che poi sarà  facile da sincronizzare con quella pubblica.

Un servizio di hosting che offre questa opportunità  è ad esempio Siteground con il suo piano GoGeek, che tra le tante caratteristiche che mette a disposizione (backup istantaneo on demand, e molti altri potenziamenti tecnologici non disponibili sui condivisi classici) riporta anche la possibilità  di fare staging per siti Joomla! e WordPress.

Molti programmatori non sono fan di soluzioni del genere, e questo perchè l’approccio non è ottimale come sicurezza e non garantisce la reperibilità  del sito al 100%, ma a mio avviso per chi non è troppo esperto possono rappresentare una soluzione ideale. Certo poi bisognerebbe valutare nello specifico, ma a mio parere lo staging offerto direttamente dall’hosting è una soluzione che andrebbe messa a disposizione dai vari servizi, visto che sembra essere in grado di venire incontro all’esigenza di testare separatamente le modifiche su un sito, e non direttamente online come spesso (specie chi gestisce molti siti affiliati, ad esempio) è costretto a fare.

Sincronizzazione file e database via WP-CLI

Esistono numerose soluzioni che permettono la sincronizzazione automatica dei file lato sito test e lato sito in produzione (rsync, ad esempio), ma in genere è più opportuno sfruttare soluzioni ad hoc; una delle più comunemente usate dai programmatori è ad esempio wordmove, free e open source che possiede pero’ come unico potenziale svantaggio il fatto di non essere in PHP, bensଠin linguaggio Ruby. Per sincronizzare due copie di WordPress (staging o test e produzione o versione pubblica del sito), si può utilizzare WP-CLI (WordPress Command Line Tool), l’interfaccia di comando via terminale ufficiale di WordPress, che pero’ è disponibile solo se il vostro hosting dispone di terminale SSH – un esempio di hosting che va bene a questo scopo è DigitalOcean, una delle migliori soluzioni VPS cloud che ho trovato quest’anno.

I passi da seguire, in questo caso, sono i seguenti.

Effettuare una copia dei file

Ammettiamo di voler creare lo staging site come una droplet staccata rispetto al sito originale, quindi ad esempio test.miosito.it; dovrete prima di tutto creare un’istanza vuota a parte del sito, utilizzando se possibile lettere e numeri casuali (ad esempio test162534) in modo da ridurre la possibilità  che il sito in staging venga inavvertitamente indicizzato dai motori, o possa subire attacchi informatici. Se state usando un hosting con Ubuntu e server Apache, ad esempio, non dovrete fare altro che farvi una copia dei file con:


cd /var/www/html

 

cp -rf tuosito.it test162534.tuosito.it

 

dove miosito.it è il sito pubblico in release mentre test162534.miosito.it è il sottodominio copia dell’originale, da usare a scopo di test.

Creare un database vuoto

Lanciamo i seguenti comandi per creare un nuovo database:


mysql -u root -pvostrapassworddiroot

e poi:

create database dev162534;

Abbiamo creato un database vuoto dev162534.

Copiare il database

Basta questo semplice comando, a questo punto, per copiare il db originale, ammesso che quello del sito originale sia miodatabase:

mysqldump -u root -pvostrapassworddiroot miodatabase | mysql -u -u root -pvostrapassworddiroot dev162534;

Attendere la fine dell’operazione di dump, e poi procedere al passo successivo.

Installare WP-CLI

WP-CLI possiede i seguenti requisiti di fondo:

  • sistema operativo UNIX-like quindi OS X, Linux, FreeBSD, Cygwin; Windows è supportato, ma solo in parte
  • PHP almeno 5.3.29
  • WordPress versione 3.7 o (meglio) successive

Come prima cosa per installare WP-CLI bisogna lanciare un curl per scaricare il file phar, cioè il pacchetto di installazione:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Si verifica poi che il pacchetto funzioni:

php wp-cli.phar --info

Se il comando precedente non da’ errori, possiamo procedere e siamo pronti ad usare WP-CLI; per lanciarlo basterà  scrivere wp, ma prima di tutto il file deve essere reso eseguibile e spostato nella directory apposita per poter essere visibile.

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

Per verificare che tutto funzioni basta digitare wp --info e verificare che non ci siano errori o anomalie all’interno dell’output. Se vengono fornite informazioni sul server in uso, siamo pronti a procedere oltre!

Create a config file for WP-CLI

Ci serve adesso configurare a dovere WP-CLI, per cui andiamo a modificare il file .yml dentro il sito in fase di sviluppo:


cd /var/www/html/dev162534.tuosito.it

nano wp-cli.local.yml

 

Aperto l’editor nano, andiamo ad aggiungere nel file wp-cli.local.yml queste righe:


path: .

 

url: http://dev162534.tuosito.it

Ulteriori informazioni sono disponibili nella pagina ufficiale.

Configurare i contenuti del database

WP-CLI è molto comodo per effettuare un’operazione di Search & Replace come ho descritto manualmente nel paragrafo precedente di questo tutorial. L’opzione in questione si chiama search-replace e permette di migrare il database da un sito all’altro con un semplice, singolo comando del tipo:


wp search-replace 'http://tuosito.it' 'http://dev162534.tuosito.it'

 

A questo punto il database è stato migrato correttamente. Quello che poi bisognerà  fare è sincronizzare i due siti mediante una soluzione come Git, e sfruttare quanto fatto poco fa per aggiornare volta per volta il database. Il mio suggerimento in questi casi è quello di effettuare prima dei test semplici su un sito di prova, e solo dopo aver preso familiarità  con l’ambiente ed il processo procedere oltre.

Considerate che su Google trovate molto facilmente soluzioni di staging a pagamento che includono assistenza e tutto

Plugin per lo staging (copia integrale del sito)

La terza strada che si può seguire è quella di sfruttare soluzioni di plugin che clonano automaticamente il sito da locale a remoto e che, ad esempio per WordPress, sono molto diffuse: la maggioranza permette sostanzialmente di fare backup sia manuali che automatizzare, ed in larga parte (seppur con qualche approssimazione di fondo) vanno benissimo per fare staging con il vostro sito. Queste soluzioni sono, ad esempio:

che ovviamente suggerisco di testare con calma, una per volta, in quanto possiedono approcci e filosofie abbastanza diverse tra loro.

👇 Da non perdere 👇



Questo portale web esiste da 4461 giorni (12 anni), e contiene ad oggi 6496 articoli (circa 5.196.800 parole in tutto) e 12 servizi online gratuiti. – Leggi un altro articolo a caso
5/5 (1)

Ti sembra utile o interessante? Vota e fammelo sapere.

Questo sito contribuisce alla audience di sè stesso.
Il nostro network informativo: Lipercubo.it - Pagare.online - Trovalost.it.