PHP su RHEL 8, 9 e 10: AppStream, moduli e versioni disponibili

Le versioni di PHP disponibili su RHEL 8, 9 e 10, e quindi su Rocky Linux e AlmaLinux, con le scadenze pubblicate da Red Hat, i comandi per gestire flussi e moduli di dnf e il confronto con le date di fine supporto di php.net.

Copertina con il logo php∞, la categoria Distribuzioni Linux, il titolo PHP su RHEL 8, 9 e 10 e il numero 20

Su Red Hat Enterprise Linux e sulle distribuzioni compatibili, Rocky Linux e AlmaLinux, la domanda “quale PHP posso usare e fino a quando?” ha una risposta meno ovvia di quanto sembri. Ogni versione di RHEL offre più versioni di PHP, ognuna con una propria scadenza, distribuite come flussi di un modulo su RHEL 8 e 9 e come pacchetti separati su RHEL 10. E la scadenza decisa da Red Hat può essere molto diversa da quella del progetto PHP, in un senso o nell’altro.

In questo articolo mettiamo in ordine le versioni di PHP disponibili su RHEL 8, 9 e 10 con le date di fine supporto pubblicate da Red Hat, spieghiamo come funzionano gli Application Streams e i moduli di dnf, con i comandi per vedere e cambiare versione, e chiariamo cosa vuol dire davvero che un PHP “fuori supporto” per php.net è ancora coperto da Red Hat, e viceversa.

Application Streams in breve

Da RHEL 8 il software applicativo, come linguaggi, database e server web, sta nel repository AppStream, separato dal sistema di base. Ogni componente può avere più versioni, chiamate Application Streams, con un ciclo di vita indipendente da quello del sistema operativo. Red Hat li divide in due gruppi:

  • flussi per tutta la vita della versione: di solito la versione iniziale, supportata fino alla fine della fase di manutenzione di quella versione di RHEL, cioè maggio 2029 per RHEL 8, maggio 2032 per RHEL 9 e maggio 2035 per RHEL 10;
  • flussi con scadenza propria: versioni aggiunte nei rilasci minori successivi, con un supporto più breve indicato nella tabella ufficiale.

Su RHEL 8 e 9 le versioni alternative di PHP sono distribuite come flussi del modulo php, che si abilitano con dnf module. Su RHEL 10 Red Hat ha smesso di usare i moduli: le versioni sono normali pacchetti RPM, con la versione nel nome per quelle aggiuntive, e il comando dnf module mostra un avviso di deprecazione. Tutte le date che seguono vengono dalla pagina ufficiale Red Hat Enterprise Linux Application Streams Life Cycle.

Diagramma a barre dei flussi di PHP su RHEL dal 2019 al 2035, con una linea a ottobre 2026. RHEL 8: PHP 7.2 ritirato a maggio 2021, PHP 7.3 ritirato a novembre 2021, PHP 7.4 per tutta la vita della versione fino a maggio 2029, PHP 8.0 ritirato a novembre 2024, PHP 8.2 fino a maggio 2029. RHEL 9: PHP 8.0 per tutta la vita della versione fino a maggio 2032, PHP 8.1 ritirato a maggio 2025, PHP 8.2 e 8.3 fino a maggio 2029. RHEL 10: PHP 8.3 per tutta la vita della versione fino a maggio 2035, PHP 8.4 dal 2026 fino a maggio 2029
A ottobre 2026 restano supportati sette flussi di PHP su undici: due su RHEL 8, tre su RHEL 9, due su RHEL 10.

RHEL 8: dal 7.2 all’8.2

RHEL 8 è uscito nel 2019 e da maggio 2024 è nella fase di manutenzione, che dura fino a maggio 2029. Ha ricevuto cinque flussi di PHP:

FlussoDisponibile daFine del supporto Red HatStato a ottobre 2026
php:7.2RHEL 8.0maggio 2021ritirato
php:7.3RHEL 8.1novembre 2021ritirato
php:7.4RHEL 8.3maggio 2029, con RHEL 8supportato
php:8.0RHEL 8.6novembre 2024ritirato
php:8.2RHEL 8.10maggio 2029supportato
Fonte: Red Hat Enterprise Linux Application Streams Life Cycle.

Il dato più interessante è PHP 7.4: per il progetto PHP è fuori supporto da novembre 2022, ma su RHEL 8 è il flusso che dura per tutta la vita della versione, e Red Hat continua a pubblicare correzioni fino a maggio 2029. Al contrario, chi ha scelto il flusso 8.0 su RHEL 8 è senza aggiornamenti da novembre 2024, anche se in apparenza usava una versione più moderna. Ne parliamo anche nell’articolo su PHP 7.4 dopo la fine del supporto.

RHEL 9: dall’8.0 all’8.3

RHEL 9 è uscito nel 2022 e resta nella fase di supporto completo fino a maggio 2027, poi in manutenzione fino a maggio 2032. La versione iniziale di PHP è la 8.0, installata come normale pacchetto senza abilitare moduli; le successive sono flussi del modulo php:

  • PHP 8.0, da RHEL 9.0: per tutta la vita della versione, fino a maggio 2032;
  • PHP 8.1, da RHEL 9.1: ritirato a maggio 2025, sette mesi prima della fine del supporto del progetto PHP;
  • PHP 8.2, da RHEL 9.4: fino a maggio 2029;
  • PHP 8.3, da RHEL 9.6: fino a maggio 2029.

Anche qui la versione più vecchia è quella che dura di più. PHP 8.0, abbandonato dal progetto a novembre 2023, riceve correzioni da Red Hat fino a maggio 2032, oltre otto anni dopo. PHP 8.1 è l’esempio opposto: il flusso di Red Hat è finito prima del ramo ufficiale.

RHEL 10: niente moduli, PHP 8.3 e 8.4

RHEL 10 è uscito a maggio 2025 con PHP 8.3, la versione che dura per tutta la vita del sistema, fino a maggio 2035. Con RHEL 10.2, a maggio 2026, è arrivato PHP 8.4, supportato fino a maggio 2029. Come spiega la guida di Red Hat sulle differenze introdotte in RHEL 10, le versioni aggiuntive non sono più flussi di un modulo ma pacchetti con la versione nel nome, come php8.4-cli.

La conseguenza pratica è che su RHEL 10 non esiste più un comando per “cambiare flusso”. Per passare da 8.3 a 8.4 si annotano le estensioni installate, si rimuovono i pacchetti 8.3 e si installano i corrispondenti 8.4. La documentazione di Red Hat sconsiglia di affidarsi all’opzione --allowerasing, che può rimuovere estensioni senza che tu te ne accorga.

I comandi per vedere e cambiare versione

Su RHEL 8 e 9, e quindi su Rocky Linux e AlmaLinux 8 e 9, i flussi si gestiscono con dnf module. Nell’elenco la lettera [d] indica il flusso predefinito, [e] quello abilitato:

# Flussi del modulo php disponibili e flusso abilitato
dnf module list php

# Pacchetti e profili di un flusso
dnf module info php:8.2

# Nuova installazione da un flusso preciso
dnf module enable php:8.2
dnf install php-cli php-fpm

# Cambio di flusso su un server esistente (per esempio da 7.4 a 8.2)
dnf module reset php
dnf module enable php:8.2
dnf distro-sync

Il cambio di flusso aggiorna PHP in un colpo solo, con tutte le estensioni. Va quindi provato prima su una copia del server con l’applicazione reale, e i file php.ini e i pool di PHP-FPM modificati vanno confrontati con le nuove versioni salvate dal pacchetto. Su RHEL 10 i comandi sono quelli dei pacchetti normali:

# PHP 8.3, versione iniziale di RHEL 10
dnf install php-cli php-fpm

# PHP 8.4 (da RHEL 10.2): elenca i pacchetti con il nome esatto
dnf list available 'php8.4*'

# Estensioni installate oggi, da reinstallare nella nuova versione
rpm -qa 'php*' | sort > /root/php-pacchetti-8.3.txt

Supportato da chi, e fino a dove

Il confronto tra le date di php.net e quelle di Red Hat mostra quanto sia fuorviante chiedersi solo “la mia versione di PHP è supportata?”. La domanda giusta è chi mantiene il pacchetto che stai usando, e fino a quando.

Diagramma a barre che confronta, per ogni ramo di PHP, la fine delle correzioni del progetto PHP e la fine del flusso Red Hat più lungo. PHP 7.4: php.net fino a novembre 2022, Red Hat fino a maggio 2029 su RHEL 8. PHP 8.0: php.net fino a novembre 2023, Red Hat fino a maggio 2032 su RHEL 9. PHP 8.1: php.net fino a dicembre 2025, Red Hat solo fino a maggio 2025 su RHEL 9. PHP 8.2: php.net fino a dicembre 2026, Red Hat fino a maggio 2029 su RHEL 8 e 9. PHP 8.3: php.net fino a dicembre 2027, Red Hat fino a maggio 2035 su RHEL 10. PHP 8.4: php.net fino a dicembre 2028, Red Hat fino a maggio 2029 su RHEL 10
Per PHP 7.4 e 8.0 Red Hat va molto oltre php.net; per PHP 8.1 si è fermata prima.

Ci sono però due precisazioni. La prima riguarda la copertura: nella fase di manutenzione Red Hat pubblica, secondo la sua politica sugli aggiornamenti, le correzioni per le vulnerabilità critiche e importanti e per quelle moderate con punteggio CVSS di almeno 7, a propria discrezione. Una vulnerabilità di gravità minore può quindi restare aperta anche su un flusso supportato. La seconda riguarda i flussi ritirati: PHP 8.0 su RHEL 8 e PHP 8.1 su RHEL 9 non ricevono nulla, e il sistema non avvisa.

Rocky Linux e AlmaLinux ricostruiscono gli stessi flussi e seguono le stesse versioni di RHEL. Chi usa invece PHP dal repository di Remi, per esempio un flusso php:remi-8.1, dipende dalla politica di quel repository, descritta nell’articolo su Remi e le Software Collections.

Come scegliere

Per un server nuovo o per una migrazione, conviene ragionare su tre criteri, nell’ordine:

  1. la versione richiesta dall’applicazione, con CMS, framework, plugin e librerie: è il vincolo che non si può aggirare;
  2. la durata del flusso: a parità di compatibilità, un flusso che dura fino al 2032 o al 2035 evita un nuovo cambio tra due anni;
  3. la distanza dalle versioni correnti: un PHP vecchio coperto da Red Hat riceve le correzioni di sicurezza, ma l’ecosistema di librerie e CMS lo abbandona comunque, come succede oggi a PHP 7.4 e succederà presto a PHP 8.2, il cui ramo ufficiale si chiude a dicembre 2026. Ne parliamo nell’articolo su PHP 8.2 e la fine del supporto.

Su RHEL 9 un’applicazione pronta per PHP 8.3 ha davanti il flusso 8.3 fino al 2029; se può passare a RHEL 10, lo stesso PHP 8.3 dura fino al 2035. Se invece l’applicazione richiede una versione che nessun flusso supporta più, servono pacchetti ricostruiti con le patch e un piano di migrazione: possiamo valutarlo insieme partendo dal tuo server, scrivici indicando versione di RHEL e di PHP.

Possiamo dunque riassumere

Su RHEL 8, 9 e 10, e sulle derivate Rocky Linux e AlmaLinux, ogni versione di PHP è un Application Stream con una scadenza propria. A ottobre 2026 su RHEL 8 sono supportati PHP 7.4 fino a maggio 2029, con tutta la vita della versione, e PHP 8.2 fino a maggio 2029, mentre i flussi 7.2, 7.3 e 8.0 sono ritirati. Su RHEL 9 PHP 8.0 dura fino a maggio 2032, PHP 8.2 e 8.3 fino a maggio 2029, e il flusso 8.1 è ritirato da maggio 2025. Su RHEL 10 non ci sono più moduli: PHP 8.3 dura fino a maggio 2035 e PHP 8.4, arrivato con la 10.2, fino a maggio 2029. Le date di Red Hat possono superare di anni quelle di php.net o fermarsi prima, e la copertura segue i criteri di gravità di Red Hat. Prima di decidere, verifica quale flusso è abilitato, chi mantiene il pacchetto e fino a quando.

IL PROSSIMO PASSO

Mettiamo
in sicurezza.

Indicaci versione di PHP, sistema operativo e cosa ti preoccupa. Ti risponderemo con una valutazione dell’esposizione e una proposta di intervento.

Richiedi supporto

Ti porta al modulo di richiesta, in quattro passi.

PHP LEGACY · MANAGED SERVER S.R.L.info@phplegacy.it +39 02 5656 9681

Lunedì – venerdì · 09:30 – 19:30

Urgenza in corso? Reperibilità H24
+39 340 985 4556 ↗