PHP per un sito web: versioni, compatibilità e prestazioni

La versione di PHP utilizzata da un sito web influenza compatibilità, sicurezza e prestazioni. Scegliere quella giusta non significa però impostare semplicemente il numero più alto disponibile: bisogna prima verificare che CMS, plugin, temi, applicazioni e librerie siano compatibili.

La guida spiega come leggere il ciclo di vita delle versioni PHP, come gestire applicazioni legacy e quali aspetti considerare prima di un aggiornamento o di un intervento sulle prestazioni.

Che cos'è PHP e perché la versione è importante

PHP è un linguaggio di programmazione utilizzato soprattutto per generare pagine web dinamiche. Un CMS come WordPress o un'applicazione e-commerce come PrestaShop esegue codice PHP sul server e produce l'HTML che viene poi inviato al browser.

La versione di PHP determina quindi l'ambiente nel quale viene eseguito il codice. Una versione più recente può offrire correzioni di sicurezza, nuove funzionalità e miglioramenti del motore, ma può anche rimuovere comportamenti obsoleti o modificare il modo in cui alcune applicazioni funzionano.

Per questo la scelta della versione deve essere considerata insieme alle caratteristiche del sito e del piano hosting. Se stai valutando un nuovo servizio, è utile sapere come leggere le caratteristiche di un piano hosting, compreso il supporto alle versioni PHP necessarie al progetto.

Le versioni di PHP: cosa significa supporto attivo

PHP mantiene più versioni contemporaneamente. Ogni ramo riceve inizialmente supporto attivo e, successivamente, un periodo di supporto dedicato alle sole correzioni di sicurezza. Al termine del ciclo di vita una versione diventa obsoleta e non riceve più aggiornamenti ufficiali.

È importante distinguere tra supporto ufficiale e disponibilità della versione sull'hosting. Una versione PHP può essere ormai fuori supporto da parte del progetto PHP, ma continuare a essere necessaria per applicazioni legacy che non possono ancora essere migrate. In questo caso la sua disponibilità ha una funzione di compatibilità, non significa che sia una scelta consigliata per un nuovo progetto.

VersioneStato del supporto ufficialeFine del supporto ufficialeIndicazione pratica
PHP 8.5 Supporto attivo 31 dicembre 2029 Scelta naturale per nuovi progetti compatibili
PHP 8.4 Supporto attivo 31 dicembre 2028 Ottima scelta per applicazioni moderne compatibili
PHP 8.3 Solo sicurezza 31 dicembre 2027 Utilizzabile, ma con aggiornamento da pianificare
PHP 8.2 Solo sicurezza 31 dicembre 2026 Da aggiornare quando l'applicazione è compatibile
PHP 7.4 Fuori supporto (EOL) 28 novembre 2022 Solo applicazioni legacy che ne richiedono la compatibilità
PHP 7.0 Fuori supporto (EOL) 10 gennaio 2019 Solo applicazioni legacy non ancora migrabili
PHP 5.6 Fuori supporto (EOL) 31 dicembre 2018 Solo applicazioni legacy che richiedono questa versione

Le date fanno riferimento al ciclo di vita ufficiale di PHP e vanno ricontrollate quando la guida viene aggiornata. Al momento della revisione, PHP 8.5 è la release più recente, mentre PHP 8.4 è ancora in supporto attivo; PHP 8.2 e 8.3 ricevono esclusivamente correzioni di sicurezza. Per un nuovo sito è preferibile utilizzare una versione ancora supportata; per un'applicazione legacy può invece essere necessario mantenere temporaneamente una versione precedente, consapevoli dei relativi rischi e con un piano di migrazione quando possibile.

Quale versione PHP scegliere?

Per un sito nuovo, la scelta di riferimento è la versione PHP supportata più recente compatibile con tutti i componenti utilizzati. Per un sito esistente, invece, è più prudente verificare prima la compatibilità e testare il passaggio in un ambiente separato.

Se l'applicazione è legacy e richiede PHP 7.4, 7.0 o 5.6, la priorità può essere mantenere la compatibilità. In questo caso la versione EOL va considerata una soluzione di continuità, non una scelta tecnologica per il futuro: l'obiettivo resta portare l'applicazione verso una versione supportata.

Anche un passaggio tra versioni moderne non va dato per scontato. Cambiamenti nel linguaggio, nelle estensioni o nel comportamento di alcune funzioni possono richiedere interventi sul codice; per questo è preferibile verificare sempre i requisiti della versione target prima di applicarla in produzione. La documentazione PHP pubblica infatti guide di migrazione specifiche e segnala le modifiche incompatibili da verificare prima del passaggio.

Compatibilità PHP: cosa bisogna controllare

Il principale ostacolo a un aggiornamento di PHP è la compatibilità del codice. Un sito può dipendere da CMS, plugin, temi, moduli, librerie, estensioni PHP e codice personalizzato: basta una sola dipendenza incompatibile per causare errori dopo il cambio di versione.

CMS e applicazioni

WordPress, PrestaShop e gli altri CMS dichiarano generalmente le versioni PHP consigliate o supportate. Prima di modificare l'ambiente di produzione bisogna controllare la documentazione della versione specifica del software installato, non soltanto quella dell'ultima release disponibile.

Lo stesso vale per le applicazioni sviluppate internamente. Se il progetto utilizza framework o librerie con requisiti precisi, questi vincoli devono essere verificati prima dell'aggiornamento.

Plugin, temi ed estensioni

Su un sito WordPress, ad esempio, un plugin datato può contenere codice che funziona su una vecchia versione di PHP ma genera warning, deprecazioni o errori su una versione più recente. In un negozio PrestaShop il problema può coinvolgere moduli, override e integrazioni esterne.

Per questo è buona pratica aggiornare prima i componenti applicativi, quando possibile, e verificare che non ci siano estensioni abbandonate o incompatibili.

Estensioni PHP

PHP non è composto soltanto dal motore principale. Molte applicazioni richiedono estensioni come curl, mbstring, mysqli, pdo_mysql, intl, gd o zip. Cambiare versione senza mantenere disponibili le estensioni richieste può produrre errori anche quando il codice applicativo è compatibile.

Requisiti dichiarati e test reale

I requisiti dichiarati dal software sono il primo riferimento, ma non sostituiscono un test. Un sito con codice personalizzato o numerosi componenti può avere comportamenti diversi da quelli previsti dalla documentazione, soprattutto quando passa da una versione PHP molto vecchia a una più recente.

Come verificare quale versione PHP utilizza un sito

La versione effettivamente utilizzata deve essere verificata sul server, perché quella installata sulla macchina non coincide necessariamente con quella assegnata al singolo sito.

Su un hosting con più versioni disponibili, ogni dominio può essere configurato per utilizzare un interprete differente. È quindi possibile che due siti ospitati sullo stesso server funzionino contemporaneamente con versioni PHP diverse.

Il controllo può essere effettuato dal pannello di gestione dell'hosting, dal CMS oppure, per chi amministra direttamente il server, dalla configurazione PHP-FPM o dai comandi disponibili da terminale.

È importante distinguere anche tra PHP utilizzato dal sito tramite il web server e PHP utilizzato dalla riga di comando. Un comando come php -v mostra il PHP CLI dell'utente o del sistema e non necessariamente la versione usata dalle richieste HTTP.

Per una verifica puntuale, il dato da controllare è quindi quello esposto dalla configurazione PHP del dominio o dal pannello hosting, non soltanto la versione PHP installata sul server.

Come aggiornare PHP senza compromettere il sito

Un aggiornamento di PHP dovrebbe essere trattato come una modifica applicativa, non come una semplice impostazione del pannello hosting. La procedura più sicura prevede un backup verificato, l'aggiornamento dei componenti, un ambiente di test e una verifica funzionale prima del passaggio definitivo.

1. Eseguire un backup verificabile

Prima di modificare l'ambiente di esecuzione è opportuno avere una copia recente dei file e del database. Un backup è realmente utile solo se può essere ripristinato: per questo è importante conoscere come funziona il backup di un sito web e quali elementi devono essere inclusi nella strategia.

2. Aggiornare CMS, plugin e librerie

Portare i componenti applicativi alle versioni compatibili riduce il rischio di incontrare codice obsoleto durante il cambio di PHP. Prima dell'aggiornamento è comunque consigliabile verificare changelog e requisiti, soprattutto per applicazioni personalizzate.

3. Testare una versione PHP più recente

Quando disponibile, il test dovrebbe essere eseguito su una copia del sito o su un ambiente di staging. Bisogna controllare almeno homepage, login, moduli, ricerca, checkout, pagamenti, invio email e tutte le funzioni specifiche del progetto.

4. Cambiare versione in produzione

Solo dopo i test si può applicare la nuova versione al sito reale. È preferibile effettuare il cambio in un momento in cui sia possibile controllare immediatamente log PHP, errori HTTP e comportamento dell'applicazione.

5. Controllare i log dopo il cambio

Non tutti i problemi sono visibili a colpo d'occhio. Un sito può continuare a rispondere con codice HTTP 200 e contemporaneamente generare warning, deprecazioni o errori applicativi nei log. Il controllo successivo all'aggiornamento è quindi parte integrante della procedura.

6. Prevedere un ritorno alla versione precedente

Se dopo il cambio emergono incompatibilità che non possono essere risolte subito, è utile poter tornare temporaneamente alla versione precedente. Questo non sostituisce la correzione del problema, ma riduce il rischio di lasciare un sito non funzionante mentre si completa l'analisi.

PHP e prestazioni: una versione recente rende il sito più veloce?

Una versione PHP più recente può migliorare le prestazioni, ma non è una soluzione universale alla lentezza di un sito. Il tempo di risposta dipende dall'intera catena: codice applicativo, database, query, cache, web server, risorse disponibili e configurazione PHP.

Il motore PHP viene migliorato nel tempo, ma un'applicazione con query inefficienti, plugin pesanti o codice poco ottimizzato può rimanere lenta anche dopo l'aggiornamento. La versione dell'interprete è quindi un fattore, non l'unico.

Se un sito è diventato progressivamente più lento, conviene individuare prima il collo di bottiglia. In alcuni casi il problema può dipendere dalle risorse disponibili nell'hosting; in altri dal codice o dal database. La guida su quando è il momento di cambiare hosting può aiutare a valutare il primo scenario.

Quando si cambia versione PHP con l'obiettivo di migliorare le prestazioni, è utile confrontare tempi di risposta e carico del server prima e dopo l'intervento. In questo modo si può verificare il beneficio reale invece di basarsi soltanto sulla versione utilizzata.

PHP-FPM, memoria e processi: cosa incide sulle prestazioni

Nei server moderni PHP viene spesso eseguito tramite PHP-FPM, che mantiene un insieme di processi pronti a gestire le richieste. Il numero e la dimensione di questi processi devono essere proporzionati alla memoria e alla CPU disponibili, oltre che al traffico e al tipo di applicazione.

Aumentare il numero di processi PHP non rende automaticamente il sito più veloce. Ogni processo utilizza memoria e, quando la concorrenza supera le capacità del server, il collo di bottiglia può diventare proprio la disponibilità di risorse.

Per lo stesso motivo, aumentare indiscriminatamente memory_limit non è una strategia di ottimizzazione. I limiti devono essere adeguati all'applicazione e valutati insieme all'utilizzo reale della memoria.

OPcache: una delle impostazioni più importanti

OPcache permette a PHP di conservare in memoria il bytecode degli script già compilati, evitando di ripetere una parte del lavoro a ogni richiesta. Su applicazioni PHP utilizzate frequentemente può ridurre il lavoro del processore e migliorare i tempi di risposta.

OPcache non sostituisce una cache delle pagine e non risolve query lente o codice inefficiente. È però una componente importante dell'ambiente PHP e deve disporre di memoria sufficiente per contenere gli script effettivamente utilizzati.

Su un server che ospita più siti, il dimensionamento deve inoltre considerare l'insieme delle applicazioni: una configurazione adeguata per un singolo progetto non è necessariamente sufficiente quando molti domini condividono lo stesso ambiente.

PHP e caching: due problemi diversi

È utile distinguere l'ottimizzazione dell'interprete PHP dal caching dell'applicazione. Una cache di pagina può evitare del tutto l'esecuzione di PHP per alcune richieste già memorizzate, mentre altri livelli di cache possono ridurre il lavoro richiesto dal database o dal web server.

La differenza è importante soprattutto per CMS come WordPress. Se il server deve elaborare PHP, eseguire query e costruire la pagina a ogni richiesta, il carico può essere molto maggiore rispetto a una risposta servita direttamente dalla cache.

Quando si analizzano le prestazioni, quindi, è opportuno individuare prima il collo di bottiglia invece di attribuire ogni rallentamento alla versione PHP.

PHP e sicurezza: perché mantenere una versione aggiornata

La versione di PHP è anche una componente della sicurezza del sito. Il progetto PHP fornisce correzioni alle versioni supportate; quando un ramo raggiunge la fine del ciclo di vita, non riceve più gli aggiornamenti ufficiali e può quindi rimanere esposto a vulnerabilità corrette nelle versioni successive.

Per questo, quando un'applicazione è compatibile, aggiornare PHP fa parte delle normali attività di manutenzione. Non significa però che un sito diventi automaticamente sicuro: CMS, plugin, temi, librerie, credenziali, configurazione del server e procedure di aggiornamento devono essere gestiti con la stessa attenzione.

Nel caso di un applicativo legacy che richiede PHP 5.6, 7.0 o 7.4, il problema è diverso. La versione può essere mantenuta per compatibilità, ma va considerata un vincolo tecnico da gestire e non un ambiente equivalente a una versione PHP ancora supportata.

La scelta migliore consiste quindi nel separare le due esigenze: mantenere operativo l'applicativo quando necessario e, contemporaneamente, pianificare la migrazione del codice verso una versione supportata.

Applicativi legacy: quando una versione EOL è ancora necessaria

Non tutti i siti possono essere aggiornati rapidamente. Applicazioni PHP personalizzate, vecchi gestionali, portali sviluppati internamente o componenti non più mantenuti possono dipendere da una versione specifica dell'interprete per continuare a funzionare.

In questi casi PHP 7.4, 7.0 o 5.6 può avere ancora un'utilità pratica su un hosting che deve garantire la compatibilità con applicativi legacy. La disponibilità di una versione EOL non significa però che sia consigliata per un nuovo progetto: queste versioni non ricevono più gli aggiornamenti di sicurezza ufficiali del progetto PHP. Quando si sceglie il servizio per un'applicazione di questo tipo, è quindi importante valutare il provider hosting anche in base alle versioni PHP effettivamente disponibili.

Compatibilità e sicurezza sono due aspetti diversi

Mantenere una versione obsoleta può essere necessario per evitare di interrompere un'applicazione esistente, ma la compatibilità non elimina i rischi associati a un software non più supportato. Con il tempo possono inoltre aumentare le incompatibilità con librerie, estensioni e altri componenti aggiornati.

Per questo una versione EOL dovrebbe essere considerata una soluzione di continuità. Prima di mantenerla a lungo termine è opportuno verificare se esiste una versione aggiornata dell'applicazione e valutare gli interventi necessari per portarla verso un ambiente PHP supportato. Se la migrazione non è immediatamente possibile, è importante conoscere quali componenti dipendono dalla vecchia versione e limitare il più possibile il debito tecnico.

Quando conviene cambiare versione e quando no

SituazioneApproccio consigliato
Sito nuovo Usare una versione PHP supportata e compatibile con l'applicazione.
Sito aggiornato e compatibile Valutare il passaggio alla versione supportata più recente.
Sito con plugin o moduli datati Verificare prima la compatibilità e sostituire i componenti problematici.
Applicazione personalizzata legacy Verificare dipendenze e codice, quindi pianificare la migrazione prima del cambio in produzione.
Applicativo legacy che richiede una versione PHP EOL Mantenere temporaneamente la versione necessaria e pianificare la migrazione verso una versione supportata.

PHP su WordPress e PrestaShop

WordPress e PrestaShop sono due esempi in cui la versione PHP deve essere valutata insieme all'intero ecosistema applicativo. Nel primo caso entrano in gioco soprattutto plugin, temi e personalizzazioni; nel secondo anche moduli, override e integrazioni con sistemi esterni possono influire sulla compatibilità.

Per un nuovo progetto WordPress puoi approfondire le caratteristiche di un hosting WordPress; per un negozio basato su PrestaShop è invece utile valutare un hosting PrestaShop. In entrambi i casi la disponibilità di più versioni PHP permette di affrontare gli aggiornamenti in modo più graduale.

PHP non è l'unico elemento da valutare in un hosting

La versione dell'interprete è soltanto una parte dell'ambiente server. Per un sito in produzione contano anche CPU, memoria RAM, storage, database, web server, configurazione dei processi PHP, backup e capacità di gestire picchi di traffico.

Questo diventa particolarmente evidente quando un progetto cresce: un hosting condiviso può essere sufficiente per un sito con traffico contenuto, mentre un'applicazione più esigente può richiedere risorse dedicate o una macchina virtuale. Per capire le differenze è utile confrontare le caratteristiche di una Cloud VPS con quelle di un hosting tradizionale.

La scelta dell'infrastruttura dovrebbe quindi partire dai requisiti dell'applicazione e non soltanto dalla versione PHP disponibile.

Come mantenere PHP aggiornato nel tempo

La gestione della versione PHP dovrebbe diventare parte della normale manutenzione del sito. È preferibile non aspettare che una versione raggiunga la fine del supporto per iniziare a verificare la compatibilità di quella successiva.

Un approccio efficace consiste nel mantenere aggiornati CMS e componenti, controllare periodicamente la disponibilità di nuove versioni PHP e testare con anticipo il passaggio a un ramo successivo. Gli aggiornamenti dell'applicazione e quelli dell'interprete sono collegati, ma non coincidono: mantenere aggiornato il CMS non garantisce da solo la compatibilità con ogni versione PHP futura.

In questo modo l'aggiornamento diventa una normale attività di manutenzione anziché un intervento urgente.

Per i progetti che non possono essere aggiornati rapidamente, è importante almeno conoscere le dipendenze che impediscono il passaggio e pianificare la loro sostituzione o adeguamento.

Conclusioni

La versione PHP di un sito web va scelta mettendo insieme tre aspetti: supporto, compatibilità e prestazioni. Per un nuovo progetto è preferibile utilizzare una versione ancora supportata; per un'applicazione legacy può invece essere necessario mantenere temporaneamente una versione EOL, sapendo che si tratta di una soluzione di continuità.

Prima di aggiornare PHP è opportuno verificare CMS, plugin, temi, moduli, librerie ed estensioni, creare un backup verificato e testare il sito. Dopo il cambio, log e comportamento dell'applicazione permettono di individuare eventuali problemi e confermare che la nuova versione sia realmente adatta al progetto.

Approfondimenti

Gestire più versioni PHP nello stesso ambiente

Quando un'applicazione richiede una versione PHP specifica, la possibilità di scegliere l'interprete compatibile semplifica la gestione di siti moderni e applicativi legacy.