• Home
  • Info
  • Articoli
  • Riparare Joomla 3, 2.5 , 1.5 dopo la vulnerabilità Code Injection [CVE-2015-8562]

Usare la cache di Joomla

Joomla ha un sistema di cache multilivello molto efficiente. In questo articolo troverai una panoramica del sistema di cache di Joomla, come configurarlo, come verificarne velocemente l'efficacia.

Abilitare la cache e verificarne l'efficacia

Nella configurazione, abilitate la cache su disco; quindi trovate il plugin system-cache ed abilitatelo. Assicuratevi che la cartella /cache sia scrivibile.

Verificare la cache

Dalla configurazione, mettete il sistema in modo debug.

Caricate la pagina, e leggete nelle informazioni a piè di pagina il tempo di generazione della pagina e il numero di query effettuate.

Ricaricate la pagina in un nuovo tab e confrontate i valori. Dovreste vedere un numero sensibilmente inferiore di query ed un tempo nettamente inferiore per la generazione della pagina. Su un sito di media complessità su server dedicato, che impiega 5 secondi e 82 query per la generazione, abilitando la cache si scende a 0.3 secondi e 8 query. Il numero di query che rimangono dipende dai componenti / moduli che avete sulla pagina che non supportano la cache, e dalla gestione delle sessioni (se gestite nel database, è necessario scriverle) e il contatore di visite.

I moduli e la cache

I moduli di Joomla supportano la cache in maniera nativa, anche all'insaputa del programmatore stesso.

A volte le estensioni di terza parte possono utilizzare la cache in maniera poco efficiente, non utilizzarla affatto, oppure avere degli errori grossolani che ne impediscono l'uso. Per questo è importante selezionare un insieme limitato di componenti da utilizzare per tutti i siti in modo da conoscere in anticipo la qualità degli stessi. Se tuttavia un componente già accettato da un cliente, o peggio già in produzione, dovesse contenere difetti nel sistema di gestione della cache, è spesso preferibile intervenire direttamente e risolvere il problema che non cambiare componente.  Leggete a proposito l'articolo Programmare un modulo Joomla per utilizzare la cache.

I componenti e la cache

L'utilizzo della cache nei componenti, vista la loro semplicità (ogni componente ha una sola vista alla volta) difficilmente contiene errori.

I plugin e la cache

A seconda del tipo di plugin può succedere che sia indicato l'uso della cache anche per i plugin. Parliamo soprattutto dei plugin che arricchiscono il testo di un articolo; la gestione della cache da parte del plugin deve essere fatta con estrema cautela, ed è spesso preferibile utilizzare la cache di pagina ad una gestione granulare della cache da parte del singolo plugin.  Può essere opportuno tuttavia utilizzare la cache anche nei plugin quando questi vengano utilizzati per visualizzare un insieme limitato di informazioni su un gran numero di pagine, ad esempio una tabella di articoli correlati basata sulla categoria invece che sulle keywords sotto ad un articolo: quindi ogni articolo di una categoria avrà lo stesso output generato dal plugin.

Per i tipi di plugin più comuni, ovvero quelli che arricchiscono il testo con link, formattazione, immagini, collegamenti ad altri articoli, sicuramente è più indicata, efficace e semplice l'utilizzo della cache di pagina, in quanto l'output del plugin stesso cambia con ogni pagina.

Il modulo menù

mod_mainmenu è un modulo anomalo: la cache è sempre abilitata, indipendentemente dall'impostazione che fornirete dal frontend. Ma la cache è spesso eccessiva, e sebbene l'item corrente venga visualizzato correttamente, se usiamo due moduli per visualizzare due livelli di menù, il secondo – o “figlio” - potrebbe usare sempre la stessa versione, quindi mostrare il primo menù che viene richiesto ad ogni rinnovo della cache per tutta la durata.

Per risolvere problemi di questo genere si può modificare il core con una patch per disabilitare la cache, oppure aggiungere l'Itemid ai criteri di cache.

Tags: Joomla Speed, Joomla Cache