Supporto volontario e collaborativo per Joomla!® in italiano

Joomla disaster recovery.

Valutazione attuale: 5 / 5

Stella attivaStella attivaStella attivaStella attivaStella attiva
 

disasterScrivere tutto lo 'scrivibile' su una materia come questa è impensabile, mille le situazioni e le soluzioni tante e spesso diversissime.
Ogni ulteriore contributo è benvenuto.

Purtroppo non sono pochi quelli che si sono ritrovati il sito disastrato da un hacker o semplicemente da una procedura di aggiornamento non funzionante, un plugin difettoso, un problema su disco od altro.
Molti siti non sono mai aggiornati (anche perché talvolta l'aggiornamento non è proprio una passeggiata..), ed ecco che prima o poi il primo furbetto sfrutta il bug e te lo devasta.


Le parti di un sito corrotte possono essere molteplici, files su disco, infrastruttura del provider con situazioni variate (versione php, permessi ecc.), database incoerente, sporcizia o scripts malevoli all'interno del database.

Quando le colpe sono del provider … cambiatelo.

Strumenti da cui operare, ovviamente back/end (se funziona), database operando con phpmyadmin (che un buon amministratore dovrebbe mettere a disposizione).
Accesso via FTP.
Personalmente ho visto per la stragrande maggioranza siti devastati sui files o con plugins malfunzionanti o effetto di upgrades andati male.

Altro caso, codice malevolo inserito nelle pagine, il provider se ne accorge e anziché segnalarlo (ovviamente con un ultimatum) e metterlo in quarantena, toglie il file o ci mette le mani.

Soluzione prima, il ripristino del backup.
Tutti ovviamente dovrebbero avere il loro backup a cui fare riferimento (spesso se ne occupa il provider).
Ricordo che ci vuole il backup dei files su disco ma anche quello del DB.
Poi magari scoprite che anche il restore non è andato come doveva andare o semplicemente il provider non ha fatto il backup di tutto (oppure non l'ha fatto per nulla).
Oppure il backup è dell'anteguerra (o di una versione di Joomla diversa).

Non sono situazioni piacevoli ma la soluzione di norma c'è è solo più difficile.
In ogni caso prima di provare a riparare, fate il backup del DB e dei files via FTP o con dei tools.
Durante i tentativi alla fine di ogni esperimento conviene cercare di tornare indietro.
Ci sono strumenti per il backup 'da dentro' ma ovviamente se il back-end è accessibile.

Suggerisco per chi ha accesso ai server o ha un amministratore con un file manager via Web o via ssh di operare da lì le manovre in remoto (molto più rapido che un FTP).
Prima di tutto facciamoci una copia di tutto il sito sia in locale che in remoto.

Se ad esempio il sito è nella cartella miosito fate una copia su miosito.OLD.
Poi da phpmyadmin una copia del DB (anche solo on-line).
Poi gli esperimenti li faremo su miosito e sul DB originario tornando indietro se la soluzione fallisce (ricordandoci poi di eliminare queste doppie installazioni online).

Le strade sono tantissime e questo non vuole essere un articolo esaustivo ma dare qualche indicazione per cercare di risolvere un qualcosa che comunque mette a dura prova la pazienza.

E' il caso mio dove un provider non ha fatto quello per cui era stato pagato e ho appena finito un ripristino.
In ogni caso i tentativi di riparazione si percorrono quando i tempi di riparazione sono nettamente minori di quelli di rifacimento (datevi un timeout).
Lo dico perché meglio un sito nuovo pulito che uno rotto riparato.
Tenete conto che più tempo ci mettete e più i motori di ricerca vi staccano.

Ovviamente se intuite la causa questo è già un aiuto e quindi gli esperimenti cercheranno di colpire da subito gli effetti della causa.

La prima domanda è se riuscite ad entrare dal pannello amministrativo.
Se sì cominciate ad impostare un template standard.
Andate subito a cancellare la cache.
Non va? Cominciate a disabilitare i plugin (a partire dai più pesanti).
Non va ancora? Provate a disabilitare i moduli.
Niente da fare?

Entrate nelle impostazioni di sistema per vedere la versione (nella 3.4 ad esempio basta andare su JoomlaUpdate). In altre versioni la vedete in basso nel back-end.

A questo punto trovate la versione identica alla vostra su Internet.
Consiglio una ricerca proprio del file, ad esempio Joomla_2.5.24_ita-Stable.
Consiglio anche di tenere sempre da parte lo zip che avete installato/upgradato.

Ora lo unzippate nella vostra directory locale.
Lo scaricate via FTP sul sito sovrapponendolo ai files esistenti (tranne la cartella installation).
Personalmente non sovrappongo subito, creo una cartella ad esempio 2.5Install e copio da lì con gli strumenti di gestione file webbizzati sul server (anche perché così la manovra è facilmente ripetibile).

A questo punto il sito riparte con i files nuovi sostituiti se c'è qualcosa di corrotto su questi il problema si risolve.

Se l'intrombamento porta alla mitica 'schermata bianca' potete mettere mano al file configuration.php scaricato via ftp impostando $error_reporting su 'maximum'.
Rimesso al suo posto si spera restituisca un errore che girato in rete di dia qualche dritta.
Questo si fa anche quando anche il back-end non funziona.

Se il back End non funziona svuotate la cartella cache e la temp via FTP (lasciando il file index).
Se anche il back-end non funziona intanto bisogna capire che versione di Joomla è, ovviamente non è uguale in tutte le versioni anche perché consiglio di non fermarsi alle prime due cifre della release.
Nella 3 si trova nel file administrator/manifests/files/joomla.xml (non so fino a che release la cosa sia valida).

Allora avete fatto tutto ciò e nel back-end siete riusciti ad entrare ma non va il front-end.
Esistono plugin che permettono di esportare utenti, articoli, categorie, in pratica non tutto ma tanto.

Personalmente mi hanno permesso il cambio di versione in vecchi Joomla in cui le procedure standard andavano a rotoli e il back-end non era accessibile.
Ci sono i vari JupgradePRO, REDMigrator ecc.
Ma se il back-end non funziona ve li scordate.

A questo punto prima di spararvi (se non vi ha sparato prima il cliente), ecco come salvare il salvabile.

Operare sul DB.

Se la rottura è frutto di un hacker che ha caricato porcheria negli articoli andando a vedere il contenuto di 'content' dovreste essere in grado di fare pulizia senza tanta fatica dei contenuti malevoli.
Per fermare invece i plugins, entrate in phpmyadmin, trovate la cartella con i plugins e cominciate a disabilitarli da lì.
Vi è un flag a dire se sono attivi o no la cartella è ben riconoscibile un 1 o 0 indica on/off.
Dalla tabella dei template dovreste nello stesso modo essere in grado di cambiare il template di default.

Niente da fare! Lasciate ancora la pistola sul tavolo (se non va la usate dopo il prossimo passaggio) ...

Cancello dal disco il sito (tengo sempre da parte l'OLD).
Rifate la vostra installazione 'pulita' su un database nuovo (il prefisso tendo a darlo io per non sbagliarmi con il vecchio).
A questo punto il sito ovviamente va, vuoto!
Entrate su phpmyadmin.
Cancellate il contenuto (se ne trovate), nelle tabelle content, categories, menu_types, menu.
Poi entrate nella tabella del vecchio db corrispondente ad esempio old_categories
Operazioni
Copia tabella nel (nuovo_categories), solo dati.

In pratica farà qualcosa tipo
SET SQL_MODE = 'NO_AUTO_VALUE_ON_ZERO';
INSERT INTO `nomedb`.`new_categories` SELECT * FROM `nomedb`.`old_categories` ;

La stessa cosa per tutte le altre tabelle che dicevo.

Si dovrebbe poter fare anche fare con gli utenti (evitando di trasferire admin), ma onestamente non ho provato e non so cosa succederebbe con le password.

L'importante, se il sito suggeriva degli upgrade non fateli (li farete dopo), in quanto poi magari si rischia di trovarsi tracciati diversi e quindi non così facilmente trasferibili.
Una volta dentro entrate nei menu per generare i moduli corrispondenti.

Poi trasferite via ftp la cartella images presa dal vecchio e gli altri eventuali contenuti linkati dalle pagine rimettendoli nella posizione originaria.

Rientrate nel back-end ed installate i plugins.

Se per esempio usiamo phocagallery, dopo averlo riinstallato (possibilmente della stessa versione) con lo stesso giro di prima possiamo ricuperare le categorie delle immagini e le immagini da phocagallery cathegory e da phocagallery.

I files 'fisici' dovrebbero essere nella sottocartella di images.

Non è una passeggiata ma il risultato è qualcosa di pulito e funzionante (molto meglio di altre riparazioni).
Quest'ultimo sistema ricupera meno ma il ricupero è quasi certo (in una giornata di norma potete farcela).

Non funziona … rassegnatevi!

Poi alla fine cercate di capire come evitare che ricapiti.

Buona fortuna.

commentaCommenta questo articolo sul forum

Ho scritto e condiviso questo articolo su Joomla.it, fallo anche tu. Invia ora un nuovo articolo!
Paolo Holzl
Alcune informazioni su di me:
Analisi, sviluppo, formazione.


Ho anche scritto:
         ✔ diventa autore su Joomla.it

Ultima versione di Joomla!®

downloadVer. 3.5.1 Stabile Italiana
Data di rilascio: 05 Aprile 2016
(leggi la notizia Demo online

Le migliori estensioni gratuite

Un elenco aggiornato con i link a più di 100 estensioni fra componenti, moduli e plugin gratuiti per Joomla! 3

Manuale in italiano

Manuale in italianoPer conoscere meglio Joomla!, le sue caratteristiche ed il metodo di utilizzo leggi il manuale tradotto in italiano.

Molto utili anche le risposte alle domande più frequenti: FAQ

Sicurezza del proprio sito Joomla!Leggi anche: Nozioni sulla sicurezza del proprio sito

Autori di articoli recenti

Invia un articolo!Scrivi un articolo su Joomla.it e ricevi i ricavi dalle pubblicità di Google Adsense!
Segui queste istruzioni, condividi e collabora con la community. L'elenco degli autori attivi sul sito.

Libri consigliati

Torna su

Joomla.it sui Social Network

JoomlaDay Italia

JoomlaDay

Newsletter

Inserisci qui la tua e.mail: