Versionamento Git di WordPress su Siteground

Il versionamento Git di WordPress si può definire oggi senza dubbio il sistema più avanzato per lo sviluppo di piattaforme web basate sul famoso CMS. Viene ormai usato in molte realtà aziendali ed è di fatto lo standard nelle community Open Source per tutto lo sviluppo software. In questo e nel prossimo articolo vi spiegherò il mio tipico workflow lavorativo con questo strumento, lasciando però a voi libertà di reinterpretarlo nel vostro ambiente di lavoro che preferite.

Da diversi anni tutti i miei progetti sono ospitati su hosting o VPS Siteground, non perché mi piace seguire una delle tante scuole di pensiero che si leggono sul web nelle varie diatribe questo hosting si, questo no, ma perché so di cosa ho bisogno e questo provider è uno dei pochi a potermelo fornire insieme ad ottima assistenza e possibilità di scalare al bisogno. Tra i servizi offerti c’è appunto la possibilità di generare una repository Git per ogni progetto creato. Vedremo insieme in questo articolo come poter creare un versionamento Git di WordPress perfetto per poter pushare le modifiche, database compreso, da locale in produzione senza rischiare di rompere nulla!

Iniziamo dall’avere un quadro di insieme del cPanel Siteground con evidenziate le funzionalità che andremo a richiamare in questa guida, partiremo da sotto per creare un accesso SSH alla Shell dei comandi del nostro spazio, poi installeremo una piattaforma WordPress vergine e creeremo una repository Git di quest’ultima.

versionamento git di wordpress

Creazione chiavi SSH

Sul nostro computer è necessario creare una coppia di chiavi SSH, una pubblica e una privata per poi abilitarci al login su cPanel, io uso sistemi MacOSX per cui la mia procedura è basata su comandi a terminale Unix, penso che chi usa Windows 10 con la sua nuova SuperShell non avrà problemi a seguirmi.

Siteground accetta solo chiavi a codifica DSA per gli accessi SSH, se non possiedi già un file id_dsa.pub nella cartella ~/.ssh allora ne dobbiamo creare una aprendo un terminale e dando questo comando:

ssh-keygen -t dsa

Ci verrà chiesto di fornire un nome alle chiavi e una password di sicurezza che ci dovremo salvare da qualche parte, perché servirà al primo accesso SSH. Una volta creata la coppia di chiavi copiamo la chiave pubblica che configureremo sul cPanel, usiamo il seguente comando:

pbcopy < ~/.ssh/nome_chiave.pub

Spostiamoci sul nostro cPanel alla voce SSH/Shell Access e incolliamo il tutto nel seguente riquadro:

versionamento git di wordpress

A questo punto dobbiamo risolvere un probabile problema, alcuni client Git non accettano di buon grado che Siteground usi una porta ssh non standard, la 18765 invece della 22. Perciò modifichiamo il file di configurazione ~/.ssh/config in questa maniera:

sudo nano ~/.ssh/config
Host mXX.siteground.biz
        HostName mXX.siteground.biz
        Port 18765
        User sguser

Modificando opportunamente l’host corretto e il nome utente del nostro cPanel. Salviamo con CTRL-O e usciamo con CTRL-X. Non ci resta ora che abilitare la nostra chiave privata ssh nel nostro portachiavi di sistema con il comando (ricordiamoci di sostituire il nome_utente e il nome_chiave con i propri dati):

ssh-add /Users/nome_utente/.ssh/nome_chiave

Siamo quindi pronti per collegarci in SSH al nostro hosting Siteground, facciamo un semplice test di connessione in cui ci verrà chiesta la password impostata per la nostra chiave:

ssh mXX.siteground.biz

Se tutto ha funzionato a dovere saremo collegati al terminale del nostro hosting. Possiamo quindi procedere con la parte più interessante, ovvero la creazione della repository.

Creazione Repository e versionamento Git di WordPress

versionamento git di wordpress

Ormai le procedure per installare una piattaforma WordPress vergine sono innumerevoli, non mi sprecherò nel discutere metodi migliori o peggiori, di fatto sono tutti uguali e l’aspetto davvero importante è la velocità! Usiamo pure l’installatore automatico Softaculous incluso nel nostro pannello, ci verranno chieste pochissime informazioni come nome del sito, account di amministratore, nome del database da creare e prefisso della tabella, su quest’ultimo parametro consiglio vivamente per la sicurezza di non usare il valore di default wp_ ma scegliere un valore custom a propria scelta. In pochi secondi ci ritroveremo una piattaforma WordPress al 100% funzionante sul dominio o sotto dominio da noi scelto.

Torniamo quindi nella schermata principale del cPanel e clicchiamo sull’icona SG-Git  da cui andremo a creare la repository Git della piattaforma WordPress appena creata.

Individuiamo l’installazione creata e clicchiamo sul pulsante verde Crea Repository Git, nel popup che si aprirà ci verrà mostrato il comando git clone che ci dovremo copiare per poterlo usare successivamente per clonare la repository in locale. Il resto non ci interessa e possiamo chiudere questa finestra.

versionamento git di wordpress

Ottimizzazione della repository Git

Prima di passare al workflow in locale, che tratterò nel prossimo articolo in modo tale da non confondere troppo le tematiche che sto esponendo, è doveroso svolgere una ottimizzazione della repository appena creata in modo tale da velocizzare i trasferimenti e non portarsi dietro files di fatto inutili al lavoro da svolgere.

Penso che tutti voi che state leggendo questo articolo conosciate la struttura di files e cartelle di WordPress e abbiate già capito che non ha molto senso inserire nella repository i files di core, in quanto tutte le modifiche che faremo in sviluppo saranno salvate nella cartella wp-content. Temi, plugins e uploads sono tutti immagazzinati in questa cartella, per cui potremo restringere la nostra repository a questa unica cartella escludendo tutto il resto del core.

Ecco i comandi da lanciare una volta collegati in SSH all’hosting Siteground:

ssh mXX.siteground.biz
cd /home/sguser/public_html/cartella_repo
git rm --cached -r wp-admin/ wp-includes/ *.php *.txt *.html
git commit -a -m "Removed WP-Core files"

Con questi comandi abbiamo rimosso dalla repository i files di core e abbiamo committato i cambiamenti nella repo git per averne traccia.

Considerazioni in conclusione

Ragioniamo su cosa stiamo facendo prima di clonare la repository in locale. Abbiamo creato la nostra repo e l’abbiamo ottimizzata per contenere solo ciò che realmente ci interessa nello sviluppo. Una repository Git ha un ordine preciso che dobbiamo comprendere prima andare oltre: sul nostro hosting Siteground ci sarà l’origine, paragonabile a ciò che considereremmo come origine su Github o Bitbucket, e per meglio comprendere questo io di solito preferisco rinonimare la repo di origine con indicazione remote, con il seguente comando:

git remote rename origin sg-remote

Abbiamo terminato così tutte le operazioni da fare sul nostro server o hosting per preparare la repository di versionamento Git di WordPress.

Usando qualche terminologia propria del mondo Git, ora abbiamo una branch master su cui possiamo committare e pushare direttamente o, meglio, creando altre branch, magari una per ogni sviluppatore o per ogni task coinvolto nel progetto in sviluppo. Se lavoriamo su branch diverse dal master per renderle operative in produzione ci basterà lanciare questo comando da SSH:

git push sg-remote nome_branch:master

Così verranno unite le singole branch ramificate sul master e le modifiche andranno in produzione.

Mi sono dilungato molto per spiegare tutti i comandi e i percorsi nel dettaglio. Vi do allora appuntamento al prossimo articolo in cui illustrerò come allestire in locale l’ambiente di sviluppo perfetto per lavorare velocemente e con un versionamento Git di WordPress perfetto ed efficiente.

Lascia un commento

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.