Indice:
Capita spesso di dover aggiornare delle vecchissime versioni di Joomla. Se ti capita un sito che non è stato aggiornato regolarmente, versione per versione, c'è il caso che si debba fare dei salti notevoli.
In questo post del blog non riuscirò a coprire tutti i possibili problemi che potrebbero saltare fuori, ma cercherò di dare qualche informazione dettagliata su alcuni dei più comuni.
ERROR: AJAX Loading Error: Internal Server Error
Questo che vede qua sopra è l'errore più comune che salta fuori quando si tenta un aggiornamento automatico di Joomla. Nel mio caso stavo cercando di aggiornare un Joomla 3.6.x ad un 3.7.0. Perchè ho fatto un salto di versione così "piccolo"? Joomla da la possibilità di saltare direttamente all'ultima versione: in un Joomla 3.6 se cliccate sul componente "aggiornamento di Joomla" vi proporrà di passare direttamente alla 3.9. Questa è una pratica che sconsiglio, perchè tra la 3.6 (o versione più vecchia) e l'ultima 3.9.x è cambiato il mondo. Moltissime cose sono state modificate, aggiornate o addirituttura cancellate.
Procediamo sempre per step! 3.6 -> 3.7 -> 3.8 -> 3.9 e così via.
Facciamo un bel backup del sito attuale!
I passaggi che seguono vanno a modificare radicalmente i file del sito e il database. Sono molto invasivi e la possibilità che qualcosa vada storto è ALTISSIMA. La primissima cosa che bisogna fare è un bel backup del sito: se succede qualcosa di catastrofico avremo la possibilità di tornare ad una situazione stabile.
Il mio consiglio è di usare Akeeba Backup. Potete leggere una guida completa su come utilizzarlo direttamente in questo blog. Nel caso non sia disponibile una versione di Akeeba Backup per il vostro sito va benissimo anche un bel backup a mano dei file via FTP e del database.
Scarichiamo la versione di aggiornamento giusta.
Il sito ufficiale di joomla permette di scaricare anche le vecchie versioni del CMS. Questa feature è fondamentale per poter aggiornare step by step. Nel nostro caso abbiamo bisogno del pacchetto di aggiornamento da 3.6 a 3.7. Andiamo quindi a scaricarli dalla pagina principale oppure direttamente nella pagina della versione 3.7.
Il pacchetto che ci serve NON è il primo (ossia il FULL package) perchè questo è quello da utilizzare nel caso si voglia installare un joomla da zero.
Il pacchetto che ci serve è l'UPGRADE PACKAGE, ossia quello necessario per aggiornare Joomla partendo da un sito già esistente e funzionante.
La versione ZIP va benissimo.
A questo punto procediamo con l'update a mano. Clicchiamo dal menu in alto su "componenti" -> "aggiornamento di joomla". Non facciamo però partire l'aggiornamento automatico, ma clicchiamo su "carica e aggiorna":
Con "sfoglia" andiamo a selezionare il file di update che abbiamo scaricato dal sito di Joomla.org e clicchiamo su "Carica e installa".
Gestiamo l'errore
Se siete arrivati su questa pagina a questo punto dovrebbe essere saltato fuori l'errore AJAX di cui parlavamo prima. Don't Panic!
Nel 90% dei casi è un problema di permessi. In decine di siti che ho aggiornato il problema era principalemente l'hosting datato o non completamente compatibile com Joomla.
I permessi dei file e delle cartelle consigliati per Joomla sono 644 per i file e 755 per le cartelle.
Può essere che alcuni file siano 777. Magari funziona tutto quanto ma 777 è un'impostazione che andrebbe sempre evitata perchè si porta dietro un sacco di problemi di sicurezza.
Detto ciò se non avete modo o voglia di modificare a mano i permessi di tutti i file (potete farlo via FTP con Filezilla, per esempio) alcuni hosting hanno dei tool per sistemare i permessi in automatico.
Per esempio Aruba (che è l'hosting che mi ha dato più problematiche su siti vecchi) ha un tool comodo negli "Strumenti e Impostazioni" del server Linux che si chiama "Riparazione Permissions":
Ci clicchiamo sopra, si aprirà una finestrella dove bisognerà cliccare su "ok" per far partire la procedura
Una volta cliccato su "ok" lasciamo aspettare qualche minuto in modo che il sistema aggiorni i permessi di file e cartelle.
Se tutto è andato bene possiamo riprovare a caricare il pacchetto di aggiornamento e ripetere l'update.
In molti casi basta questo passaggio per poter aggiornare il sito alla versione successiva.
L'aggiornamento è andato bene!
Ottimo! A questo punto basta andare avanti di versione in versione fino ad arrivare all'ultima, Quindi da 3.6 a 3.7, da 3.7 a 3.8, e così via. Può essere che tra un aggiornamento e l'altro sia necessario ripetere il passaggio del fix delle permissions di file e cartelle.
Un'ultima cosa che vi consiglio di fare ad ogni aggiornamento è di "esplorare" nuove estensioni disponibili e di correggere eventuali errori di database. Si può fare dal menu Estensioni -> Gestione:
Qualcosa è andato storto, l'aggiornamento è partito ma si è bloccato a metà o alla fine!
Anche questo caso purtroppo è abbastanza comune. Succede che l'aggiornamento si blocchi ad un certo punto e saltino fuori errori strani (o gravi, tipo Internal Server Error). Questo succede quando la parte finale dell'aggiornamento non viene eseguita correttamente dallo script e il sistema "si rompe". Su github è presente uno script manuale da utilizzare in questi casi.
Il link diretto è questo: https://gist.github.com/mbabker/d7bfb4e1e2fbc6b7815a733607f89281#file-readme-md
Come funziona? E come lo utilizzo?
Gli step da fare sono i seguenti:
- Scarica e installa dal sito di joomla.org il pacchetto ZIP della versione Joomla che volete installare (per esempio se passate dalla 3.6 alla 3.7 dovete scaricare il pacchetto Joomla! 3.7.0 Full Package (.zip) )
- Scompattate l'archivio e poi caricate tutti i file sul server via FTP tranne la cartella installation. Scegliete di sovrascrivere tutti i file esistenti.
- Cancellate la cartella /libraries/cms/version/
- Ora utilizzate lo script che vi ho linkato
L'utilizzo è molto semplice, prima di tutto copiate tutto il codice PHP (qui la versione raw) e lo incollate in un file di testo che chiamerete postupdate.php
Caricate il file dentro la cartella "administrator" del vostro sito.
Ora aprite un browser e andate sul link www.TUOSITO.it/administrator/postupdate.php
Lo script PHP comincerà a lavorare per completare gli step di aggiornamento.
Dopo qualche secondo dovreste tornare alla schermata di administrator. Vi consiglio di uscire e rientrare dall'amministratore (o di ricaricare la pagina in caso di errore 500). Se tutto è andato a buon fine allora dovreste vedere il vostro sito Joomla nuovamente online e aggiornato alla versione che avete caricato.
ATTENZIONE: dopo aver aggiornato con lo script php ricordatevi di cancellare il file postupdate.php dal server!!
Il sito ancora non funziona!
Qui entriamo nel campo delle infinite possibilità. Può essere successo di tutto: file corrotti, estensioni non compatibili, database obsoleto. Le soluzioni possono essere migliaia, ma il metodo migliore per cominciare a fare del debug serio è controllare gli errori spcifici. Ogni hosting da la possibiltià di leggere i log di errore di Apache. Chiedete al vostro hosting di darci un'occhiata per voi, da qui si può capire se c'è qualche file che genera degli errori o qualche plugin non compatibile che blocca il sito.
Se questo articolo ti è stato utile lascia un feedback!
E se vuoi farlo leggere anche ai tuoi amici e colleghi, condividilo!