Hai cambiato la versione di PHP del sito, perché te l’ha consigliato qualcuno, perché il CMS lo chiedeva o perché la vecchia versione non era più supportata, e ora il sito mostra un errore, una pagina bianca o funziona solo a metà. Oppure hai ricevuto un avviso che una versione andrà aggiornata e non sai se il sito reggerà. Le domande sulla versione di PHP sono tra le più frequenti che riceviamo. Vediamo perché un cambio di versione può rompere un sito, come tornare subito indietro e come fare il passaggio nel modo giusto.
Perché il sito si rompe
Ogni nuova versione di PHP è più veloce e più sicura della precedente, ma ogni tanto elimina funzioni vecchie o diventa più severa con il codice scritto male. Il codice che funzionava con la versione precedente può quindi fallire con la nuova. Il problema quasi mai è nel CMS aggiornato, ma in:
- plugin e temi vecchi, non aggiornati da anni;
- personalizzazioni scritte su misura tempo fa;
- CMS stesso non aggiornato: una versione vecchia di WordPress, PrestaShop o Joomla può non essere compatibile con un PHP recente;
- moduli a pagamento protetti o cifrati, che a volte funzionano solo con certe versioni.
Primo passo: torna indietro
Se il sito è rotto e devi rimetterlo in piedi subito, la soluzione più veloce è ripristinare la versione di PHP precedente. Dal pannello DirectAdmin, nella sezione per la scelta della versione di PHP, seleziona di nuovo quella che usavi prima e salva. Le versioni selezionabili vanno dalla 5.6 alla 8.5.
Una volta che il sito funziona di nuovo, hai tutto il tempo per capire cosa non andava, senza clienti che vedono una pagina d’errore.
Secondo passo: trova cosa si rompe
Leggi il log degli errori
Il log degli errori del sito ti dice esattamente quale file e quale riga hanno causato il problema. Lo trovi nel pannello, nella sezione dei log del dominio. Cerca righe che contengono parole come Fatal error, Uncaught Error o Call to undefined function: il percorso del file indica quasi sempre il plugin, il tema o il modulo responsabile, per esempio wp-content/plugins/nome-plugin/.
WordPress: la modalità di ripristino
Quando WordPress incontra un errore grave, spesso mostra il messaggio “C’è stato un errore critico” e invia un’email all’amministratore con il nome del plugin o del tema che l’ha causato e un link per entrare in modalità di ripristino. Controlla la casella dell’amministratore del sito, compresa la cartella spam.
Prova a disattivare il colpevole
Se il log indica un plugin, puoi disattivarlo rinominando la sua cartella dal file manager o via FTP. Per esempio, wp-content/plugins/nome-plugin diventa nome-plugin-disattivato. Se il sito torna a funzionare con il nuovo PHP, hai trovato il problema.
Terzo passo: prepara il passaggio
Il modo giusto per cambiare versione è prepararsi prima, non dopo:
- Fai una copia. JetBackup fa almeno due copie al giorno, ma prima di un intervento importante è bene sapere quale punto di ripristino usare.
- Aggiorna tutto il resto. CMS, plugin, tema e moduli all’ultima versione. Gli sviluppatori seri adeguano il codice alle nuove versioni di PHP: molto spesso aggiornare basta a risolvere.
- Controlla la compatibilità. Nella pagina di ogni plugin o modulo trovi di solito la versione minima e massima di PHP supportata. Quelli abbandonati da anni sono i candidati principali ai problemi: valuta un’alternativa.
- Prova su una copia. Con Installatron puoi clonare il sito in un ambiente di prova, cambiare lì la versione di PHP e verificare che tutto funzioni.
- Sali di una versione alla volta se parti da molto lontano: è più facile capire cosa si rompe e dove.
- Fai il cambio in un orario tranquillo e prova subito le funzioni importanti: home, pagine interne, modulo di contatto, carrello e pagamento se hai un negozio, accesso all’amministrazione.
Gli avvisi “deprecated”
A volte, dopo un cambio di versione, il sito funziona ma compaiono messaggi che contengono la parola Deprecated. Non sono errori: sono avvisi che una funzione usata dal codice verrà eliminata in una versione futura. Il sito continua a funzionare, ma è un segnale che quel componente va aggiornato presto. Questi messaggi non dovrebbero mai comparire ai visitatori: se li vedi sulle pagine, la visualizzazione degli errori è attiva. In WordPress, per esempio, controlla che nel file wp-config.php l’opzione WP_DEBUG sia impostata su false.
Le impostazioni PHP che si perdono
Ogni versione di PHP ha le sue impostazioni. Se avevi personalizzato valori come il limite di memoria o la dimensione massima dei file caricati, dopo il cambio di versione controlla che siano ancora quelli che ti servono. E ricorda che l’OPcache, la memoria che accelera l’esecuzione di PHP, è già configurata per il CMS del tuo piano.
Perché non restare sulla versione vecchia
Tornare alla versione precedente è una soluzione d’emergenza, non definitiva. Le versioni vecchie di PHP non ricevono più correzioni di sicurezza, sono più lente e, prima o poi, i plugin aggiornati smettono di supportarle. Restare indietro significa accumulare un debito che diventa sempre più costoso da saldare. Il servizio di gestione delle vulnerabilità individua i componenti con falle note: aggiornare PHP e i componenti del sito va nella stessa direzione.
Quando chiedere aiuto
Se dopo aver aggiornato tutto il sito continua a non funzionare con la versione nuova, apri un ticket dall’area clienti indicando il dominio, la versione di partenza e quella che vuoi usare e, se ce l’hai, la riga del log degli errori. Ti aiutiamo a capire quale componente blocca il passaggio. Se il sito l’ha realizzato un’agenzia, coinvolgila: le personalizzazioni su misura vanno spesso corrette da chi le ha scritte.