MegaLab.it
Stampa Articolo
Aperiodico gratuito di informatica
 
20080829215405

Mantenere aggiornato automaticamente phpMyAdmin tramite Git

a cura di Zane
27/10/2011 - articolo
Linux & Open Source - Se ancora impazzite con archivi zip e client FTP per mantenere aggiornate le vostre installazioni di phpMyAdmin, è davvero giunto il momento di un upgrade alle vostre abitudini.

A luglio 2011 mi sono ritrovato a dover mantenere aggiornate almeno 4 diverse installazioni di phpMyAdmin, lo script di riferimento per la gestione via web dei database MySQL.

Di per sé, la procedura è piuttosto semplice: si scarica la versione più recente, la si trasferisce sul server tramite un client FTP e si procede poi alla sovrascrittura dei file esistenti. Appare evidente però che, in caso sia necessario svolgere l'operazione su più server, la cosa diviene piuttosto onerosa in termini di tempo.

Considerando poi che le release sono molto frequenti (e non è opportuno saltarne nemmeno una, poiché vengono quasi sempre risolti anche problemi di sicurezza), questa incombenza stava divenendo davvero gravosa

MLIShot_20110708164007.jpg

Niente Subversion, ma "Git"

Per cercare di sbrogliare la matassa mi sono lanciato alla ricerca di un repository Subversion ufficiale dal quale prelevare il materiale tramite il comando "svn". Purtroppo però, ho scoperto che gli autori di phpMyAdmin hanno abbandonato tale soluzione e, sebbene una vecchia risorsa esista, non è più aggiornata da molti mesi.

Il progetto è infatti ora gestito tramite Git, una soluzione distribuita che, sebbene concettualmente simile a Subversion, ha meccaniche proprie piuttosto diverse.

Fortunatamente però, con un po' di smanettamento e la lettura dei comandi di base sono riuscito a raggiungere il risultato voluto: predisporre un sistema nel quale phpMyAdmin viene aggiornato tramite un solo comando da terminale.

CentOS, Internet e accesso root

In questa sede, mi occupo nello specifico di CentOS, ma la procedura seguente è facilmente adattabile a qualsiasi distribuzione Linux sia in uso sul vostro server.

Per prima cosa, assicuratevi di disporre di un calcolatore governato da questo sistema operativo: in caso così non fosse, consultate "Guida semplificata all'installazione di CentOS".

Sinceratevi altresì che il computer sul quale volete mantenere aggiornato phpMyAdmin sia in grado di accedere ad Internet.

Ricordate che è necessario svolgere le operazioni seguenti con i privilegi di root: per la massima comodità, vi raccomando caldamente di accedere direttamente al sistema con tale account.

Se preferite utilizzare il vostro utente deprivilegiato, potrebbe essere sufficiente lanciare i comandi proposti anteponendo la stringa sudo  ad ognuno di essi, ma non ho avuto modo di testare questo scenario.

Abilitare EPEL

Il client per Git necessario a raggiungere l'obbiettivo non è presente nei sorgenti software "di serie". Prima di procedere, dovete quindi abilitare il repository "EPEL".

Installare Git

Installare il software vero e proprio è facilissimo: aprite un'istanza di terminale da Applications -> Accessories-> Terminal ed impartite yum install git -y.

Attendete qualche istante ed il gioco è fatto.

Preparare la cartella

Dovete ora procedere con la creazione della cartella principale che conterrà phpMyAdmin (sarà quella utilizzata dal web server, ovviamente).

Per realizzarla rapidamente, usate mkdir -p /home/phpmyadmin (impostando, naturalmente, il percorso desiderato) oppure procedete da interfaccia grafica tramite Nautilus

MLIShot_20110708135516.jpg

Preparare il tutto

A questo punto, potete procedere scaricando la copia più recente del software tramite Git. Il comando da impartire è il seguente:

git clone --depth=1 git://phpmyadmin.git.sourceforge.net/gitroot/phpmyadmin/phpmyadmin /home/phpmyadmin

MLIShot_20110708135544.jpg

Notate che, così facendo, otterrete la copia ancora in fase di sviluppo, e non quella stabile (lo potete verificare aprendo il file README)

MLIShot_20110708135751.jpg

Per passare al ramo più adatto agli usi in ambienti di produzione, spostatevi dapprima all'interno della cartella con cd /home/phpmyadmin/, e lanciate poi questo secondo comando:

git checkout --track -b VERSIONESTABILE origin/STABLE

Aprendo ora nuovamente il file README, dovreste ricevere conferma che non si tratta di una copia preliminare

MLIShot_20110708140051.jpg

È il momento di aggiornare

La fase di preparazione è ora conclusa. Ogni qual volta vorrete aggiornare la vostra copia di phMyAdmin in futuro, non dovrete fare altro che lanciare quanto segue:

In caso non siano disponibili byte più recenti, riceverete solamente l'indicazione Already up-to-date. In caso contrario, le novità saranno scaricate automaticamente.

Notate che, per motivi di sicurezza, phpMyAdmin non consente l'accesso in caso la cartella setup non sia stata cancellata. Purtroppo però, tale directory viene (giustamente) ricreata dal comando di aggiornamento in caso gli sviluppatori abbiano apportato modifiche ai file contenuti nella stessa. La soluzione è semplicemente quella di lanciare ogni volta anche il comando rm -rf /home/phpmyadmin/setup come parte della routine di aggiornamento.

Tutto in un solo comando

Per ottimizzare al 100% la procedura, non manca che racchiudere i tre comandi in un singolo script. Lanciate gedit /home/aggiornapma.sh ed incollate quanto segue (personalizzando il percorso nella seconda riga, ovviamente)

Salvate il file e, tornati al terminale, rendetelo eseguibile con chmod ugo+x /home/aggiornapma.sh.

Svolgere l'operazione è ora banale: per aggiornare phpMyAdmin è sufficiente fare doppio click sullo script (oppure lanciatelo come sh /home/aggiornapma.sh) e godersi lo spettacolo.

Aggiornare da remoto con un solo click

Nel mio specifico caso, ho deciso di fare ancora un passo in più, integrando in un singolo file batch facilmente raggiungibile dal PC Windows locale i comandi necessari a lanciare l'update su tutti i server remoti. Una volta aver installato Cygwin, ho predisposto l'autenticazione tramite chiave asimmetrica e confezionato un .bat simile al seguente:

Come guarnizione finale, ho inserito il link a questo batch sia all'interno di un menu di 7stacks, sia come icona per RocketDock di modo da poterlo raggiungere immediatamente alla bisogna.

Un'alternativa potrebbe essere quella di automatizzare ulteriormente il tutto tramite Utilità di pianificazione, scelta che però ho scartato per mantenere comunque un minimo di controllo.

MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .

Copyright 2008 MegaLab.it - Tutti i diritti sono riservati