Modulo 8 · 8.4
Versioni di PHP e aggiornamenti
Lo guardi in un breve video
Modulo 8: Backup, sito di staging e aggiornamenti PHP · Tempo di lettura: 10 minuti
Obiettivo della lezione: al termine di questa lezione sarà in grado di preparare, eseguire e, se necessario, annullare in sicurezza un aggiornamento di PHP.
Concetti chiave: ciclo di vita di PHP (supporto attivo, solo sicurezza, fine), compatibilità di WordPress, tema e plugin, obsoleto (deprecated), avviso, errore fatale, Salute del sito, log degli errori, sito di staging, ripristinare, far eseguire l'aggiornamento
Perché le versioni di PHP sono importanti
WordPress, il Suo tema e i Suoi plugin sono scritti in PHP (lezione 1.2). Ogni anno esce una nuova versione di PHP (8.3, 8.4, 8.5, ...). Ogni versione viene mantenuta per un periodo fisso:
- supporto attivo: due anni con correzioni di bug e di sicurezza;
- solo sicurezza: poi altri due anni con sole correzioni di sicurezza;
- fine (end of life): nessuna correzione, nemmeno per le vulnerabilità.
La situazione all'8 novembre 2026, secondo php.net:
| Versione | Aggiornamenti di sicurezza fino al | Stato |
|---|---|---|
| 8.1 e precedenti | (scaduto) | Nessun aggiornamento |
| 8.2 | 31 dicembre 2026 | Solo sicurezza, fine imminente |
| 8.3 | 31 dicembre 2027 | Solo sicurezza |
| 8.4 | 31 dicembre 2028 | Attivo |
| 8.5 | 31 dicembre 2029 | Attivo |
Un sito web su una versione senza aggiornamenti gira su software con vulnerabilità note che non vengono più corrette. Inoltre le versioni più recenti sono sensibilmente più veloci (lezione 6.3). E wordpress.org consiglia PHP 8.3 o superiore (situazione a novembre 2026). L'idea è quindi di restare aggiornati ogni anno, non di fare un grande salto ogni cinque anni.
Perché un aggiornamento può rompere qualcosa
Ogni nuova versione di PHP cambia qualcosa. Le funzioni contrassegnate da anni come obsolete (deprecated) vengono rimosse e le regole diventano più severe. Alcuni esempi noti:
- PHP 8.0 ha rimosso tra l'altro
create_function()eeach(), e molti avvisi sono diventati errori; - PHP 8.2 ha contrassegnato come obsoleta la creazione dinamica di proprietà sugli oggetti, una pratica molto diffusa nei plugin più vecchi.
Esistono tre tipi di messaggi, e la differenza è importante:
| Messaggio | Significato | Conseguenza |
|---|---|---|
| Deprecated (obsoleto) | "Funziona ancora, ma scomparirà in una prossima versione" | Nulla di visibile; un avvertimento per il futuro |
| Warning o Notice | Qualcosa non è del tutto corretto | Di solito nulla di visibile, a volte un elemento che si comporta in modo strano |
| Fatal error | PHP si interrompe | Pagina bianca o "errore critico" (lezione 5.4) |
WordPress stesso di solito si adegua bene alle nuove versioni di PHP. Il rischio sta nei plugin e temi vecchi, soprattutto se non vengono aggiornati da tempo o sono sviluppati su misura.
Trovare la Sua versione attuale
- In WordPress: Strumenti > Salute del sito, scheda Info, alla voce Server: la versione di PHP. Salute del sito La avvisa anche se la Sua versione è obsoleta.
- Nel pannello del Suo hosting: in DirectAdmin con CloudLinux, in Select PHP version (con "(current)" accanto alla versione attuale).
- A volte il server la rivela nell'intestazione
X-Powered-By: PHP/8.3.x. Meglio di no (lezione 7.4), ma se è presente si vede subito.
Attenzione: presso molti provider la versione di PHP vale per l'intero pacchetto, quindi per tutti i siti web che contiene. Un sito vecchio nello stesso pacchetto può frenarLa. È un motivo in più per eliminare i siti vecchi o dar loro un pacchetto separato.
L'aggiornamento: passo dopo passo
- Prima aggiornare. Aggiorni WordPress, il Suo tema e tutti i Suoi plugin sulla versione attuale di PHP. Così buona parte dei problemi è già risolta, perché gli sviluppatori adattano il loro codice alle nuove versioni di PHP.
- Verifichi cosa dicono i Suoi plugin. Nella pagina del plugin su wordpress.org è indicata la versione di PHP richiesta; nel changelog spesso trova "compatible with PHP 8.x". Un plugin che non viene aggiornato da anni (lezione 5.3) è un candidato da sostituire.
- Eseguire un backup (lezione 8.1).
- Testare in un sito di staging (lezione 8.3). Se il Suo provider può assegnare una versione di PHP diversa per ogni sito, imposti il sito di staging sulla nuova versione. Se non è possibile (una sola versione per pacchetto), esegua il test su un sito di staging in un altro pacchetto, in locale, oppure scelga un momento tranquillo sul sito in produzione, con la vecchia versione pronta da ripristinare.
- Passare alla nuova versione: selezioni la nuova versione nel Suo pannello. In DirectAdmin con CloudLinux la sceglie in Select PHP version e fa clic su Apply; senza Apply non cambia nulla.
- Controllare subito: apra il Suo sito web e visiti alcune pagine, anche l'area di amministrazione, un modulo e (per un negozio) il checkout. Controlli nel log degli errori (lezione 5.4) se compaiono nuove righe
PHP Fatal error. - Estensioni e impostazioni: presso alcuni provider le estensioni e le opzioni di PHP (come
memory_limit) sono legate a una versione. Dopo il cambio verifichi che siano impostate correttamente anche per la nuova versione.
Se qualcosa va storto
- Errore fatale: ripristini la vecchia versione (presso la maggior parte dei provider è possibile subito), così il Suo sito web torna a funzionare. Cerchi nel log degli errori quale plugin o tema ne è la causa (il percorso è indicato nel messaggio di errore), lo aggiorni, lo sostituisca oppure chieda una soluzione allo sviluppatore. Poi riprovi.
- Solo messaggi deprecated: non è un motivo per tornare indietro. Ma è un avvertimento: con la versione successiva può diventare un errore. Annoti di quale plugin si tratta.
- Codice su misura che non funziona più: un sito vecchio realizzato da uno sviluppatore web può contenere codice che nessuno mantiene più. In tal caso quel codice deve essere adattato da qualcuno che conosce PHP. Alcuni provider, tra cui WebOké, offrono di farlo per Lei.
Non lasci un sito web "per sempre" su una versione vecchia perché un solo plugin non è compatibile. Significa rimandare un problema che diventa più grande ogni anno.
Più sicurezza in anticipo
Per chi vuole approfondire: con PHP_CodeSniffer e le regole di PHPCompatibilityWP può far analizzare il codice dei Suoi plugin e temi alla ricerca di elementi che non funzionano in una versione più recente di PHP, senza eseguire il sito. Così si trova molto, ma non tutto. Il test in un sito di staging resta necessario.
In pratica: ecco come appare in un pannello
Come esempio usiamo DirectAdmin con CloudLinux. In cPanel la funzione si chiama spesso MultiPHP Manager o Select PHP Version, in Plesk PHP Settings.
- Apra Select PHP version (in Extra Features).
- Faccia clic sulla versione accanto a PHP version, scelga la nuova versione e faccia clic su Apply.
- Controlli le schede Extensions e Options per la nuova versione.
- Controlli il Suo sito web e il log degli errori. Se qualcosa non funziona, scelga la vecchia versione e faccia clic su Apply.
Riepilogo
- Ogni versione di PHP riceve due anni di supporto attivo e due anni di sole correzioni di sicurezza; poi nessuna correzione. All'8 novembre 2026 la 8.1 non riceve più nulla e la 8.2 ancora fino alla fine del 2026.
- Un aggiornamento rompe soprattutto plugin e temi vecchi; deprecated è un avvertimento, un fatal error blocca il sito web.
- Ordine: aggiornare tutto, verificare i plugin, backup, test nel sito di staging, passaggio alla nuova versione, controllo immediato.
- Se qualcosa va storto, ripristini la vecchia versione, trovi il colpevole nel log degli errori e risolva il problema; non resti bloccato su una versione vecchia.
- Presso molti provider la versione vale per l'intero pacchetto; elimini i siti vecchi.
Quiz
Esercizio
Esercizio A8.4: La Sua versione di PHP è ancora supportata? Verifichi in Strumenti > Salute del sito, scheda Info, Server, quale versione di PHP utilizza il Suo sito web e la inserisca insieme al Suo dominio. Il programma confronta la versione con l'elenco delle versioni supportate di php.net: verde per il supporto attivo, arancione per solo sicurezza, rosso se non arrivano più aggiornamenti. Se il Suo server mostra la versione nell'intestazione X-Powered-By, il programma controlla anche se corrisponde a quanto ha inserito (e segnala che è meglio nascondere quell'intestazione, lezione 7.4).
Esercizio D8.4: Un piano di aggiornamento. Scriva un piano per l'aggiornamento del Suo sito web alla versione di PHP più recente offerta dal Suo provider. Indichi: versione attuale e versione di destinazione, quali plugin e temi utilizza e se supportano la versione di destinazione (con la fonte in cui lo ha letto), dove esegue il test (sito di staging, altro pacchetto, in locale), come può tornare indietro e quando lo farà. Lo metta in pratica se può e annoti cosa è comparso nel log degli errori.
Esercizio D8.4: Un piano di aggiornamento
Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.
Scelga una versione di destinazione con supporto attivo (o almeno ancora aggiornamenti di sicurezza) e indichi per ogni plugin una fonte (pagina del plugin, changelog, Diagnostica del sito).
Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.
Approfondimenti
Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.
- Guida DirectAdmin 14.1: Scegliere la versione di PHP (Select PHP version)
- Guida DirectAdmin 14.6: Errori dopo un aggiornamento di PHP e come trovare il log degli errori
- Modificare la versione PHP e le impostazioni PHP (e cosa fare in caso di errori dopo un aggiornamento)
- Guida DirectAdmin 14.2: Attivare e disattivare le estensioni PHP
- Guida WebOké 6.11: Far eseguire l'aggiornamento PHP
- Versioni di PHP supportate (php.net, Inglese): https://www.php.net/supported-versions.php
- Versioni di PHP e di WordPress (make.wordpress.org, Inglese): https://make.wordpress.org/core/handbook/references/php-compatibility-and-wordpress-versions/
