AGGIORNAMENTO E UPGRADE · DRUPAL

Drupal su PHP 8.
Da Drupal 7 a Drupal 12.

Portiamo i siti Drupal 7 su Drupal 11 con la Migrate API e poi su Drupal 12, e aggiorniamo sul posto i siti Drupal 9 e 10, fino a un PHP supportato.

Per portali, siti istituzionali e intranet ancora su Drupal 7, fuori supporto dal 5 gennaio 2025, o su Drupal 10, che arriva a fine vita il 9 dicembre 2026.

PERCORSO DI UPGRADE

Dal ramo che hai.
Al ramo supportato.

Da Drupal 7 alle versioni moderne si costruisce un sito nuovo e ci si portano i dati, perché con Drupal 8 il core è stato riscritto. Da Drupal 9 in poi invece si aggiorna lo stesso sito, rimuovendo il codice deprecato una versione alla volta.

  1. 01Drupal 7PHP 5.6 – 8.3

    Fuori supporto dal 5 gennaio 2025, si migra su un sito nuovo

  2. 02Drupal 9 e 10PHP 7.3 – 8.4

    Si aggiorna sul posto; Drupal 10 chiude il 9 dicembre 2026

  3. 03Drupal 11.4PHP 8.3 – 8.5

    Arrivo delle migrazioni da Drupal 7, sicurezza fino ad aprile 2027

  4. 04Drupal 12PHP 8.5

    Atteso a dicembre 2026, si raggiunge da Drupal 11 con un aggiornamento ordinario

VERSIONI E REQUISITI PHP

Versioni e PHP.
Ramo per ramo.

Le versioni di PHP supportate da ogni ramo di Drupal secondo le pagine dei requisiti e del calendario dei rilasci di drupal.org.

VersionePHP supportatoStato a novembre 2026
Drupal 75.6 – 8.3fuori supporto dal 5 gennaio 2025
Drupal 97.3 o superiorefuori supporto dal 1° novembre 2023
Drupal 10.4 – 10.68.1 – 8.4fine vita il 9 dicembre 2026
Drupal 11.1 – 11.28.3 – 8.4fuori supporto
Drupal 11.38.3 – 8.5sicurezza fino al rilascio di Drupal 12
Drupal 11.48.3 – 8.5supportato, sicurezza fino al 21 aprile 2027
Drupal 128.5rilascio previsto la settimana del 7 dicembre 2026

Fonti: Requisiti PHP di Drupal · Requisiti PHP di Drupal 7 · Calendario dei rilasci di Drupal. La matrice dei rami di PHP con le distribuzioni Linux è nella pagina Versioni PHP.

COSA TROVIAMO DI SOLITO

Cosa blocca l’upgrade.
E come lo sblocchiamo.

Su Drupal i dati si spostano con strumenti del core. Il lavoro vero sta nel codice e nelle scelte sui moduli.

Un core riscritto da Drupal 8

Tra Drupal 7 e Drupal 11 cambiano schema del database, formato dei moduli e dei temi. Installiamo un Drupal 11 pulito e importiamo contenuti, utenti, tassonomie, menu, file e alias con la Migrate API, in modo ripetibile.

Temi in PHPTemplate

I file .tpl.php di Drupal 7 vanno riscritti come template Twig. La logica rimasta nei template la spostiamo in funzioni di preprocess o in moduli, così il nuovo tema resta solo presentazione.

Moduli personalizzati sugli hook

I moduli scritti per Drupal 7 usano API che non esistono più. Li riscriviamo con classi, servizi, rotte e plugin, su codice compatibile con PHP 8.3 e superiore.

Moduli contrib senza successore

Per ogni modulo contrib verifichiamo se esiste una versione per Drupal 11 e se migra i propri dati. Quelli senza successore li sostituiamo con soluzioni diverse, e sono la voce che pesa di più sui tempi.

Migrazioni da Drupal 7 in uscita

Migrate Drupal UI è deprecato da Drupal 11.3 e sarà rimosso in Drupal 12, e il piano del progetto prevede lo stesso per le sorgenti da Drupal 7. Per questo completiamo la migrazione su Drupal 11.

URL, file e permessi

Gli alias passano, ma i percorsi generati da viste e moduli vanno controllati uno per uno, con reindirizzamenti permanenti. Rivediamo anche i formati di testo per CKEditor 5 e i permessi che hanno cambiato nome.

IL METODO

Il nostro intervento.
Passo dopo passo.

Se la migrazione richiede tempo, nel frattempo teniamo protetto il PHP in uso con il backport delle patch di sicurezza.

  1. 01INVENTARIO

    Inventario e matrice

    Elenchiamo moduli abilitati, tipi di contenuto, viste e integrazioni, divisi tra core, contrib con versione moderna e codice da riscrivere. Ne esce una matrice di compatibilità con Drupal 11 e PHP 8.3.

  2. 02STAGING

    Prova di migrazione

    Su un Drupal 11 pulito importiamo i contenuti reali con Drush e Migrate Upgrade, per misurare quanto passa senza interventi. Le migrazioni generate finiscono nel repository e si rieseguono a ogni prova.

  3. 03UPGRADE

    Tema, moduli e test

    Ricostruiamo tema, moduli personalizzati e layout, poi proviamo il sito con dati aggiornati in un ambiente di prova. Prima del lancio rieseguiamo la migrazione finale con un breve blocco delle modifiche.

  4. 04RILASCIO

    Rilascio e ponte

    Il lancio avviene con Ansible, reindirizzamenti e un piano di rollback. Fino ad allora il vecchio Drupal 7 resta online, con il backport delle patch di sicurezza sul PHP in uso.

DOMANDE FREQUENTI

Prima di iniziare.

Le domande che ci fanno più spesso su Drupal e PHP.

Da Drupal 7 posso aggiornare direttamente a Drupal 12?

Conviene arrivare prima su Drupal 11. Le migrazioni da Drupal 7 sono nel core di Drupal 11, mentre l’interfaccia di migrazione sarà rimossa in Drupal 12 e il progetto prevede di togliere anche le sorgenti da Drupal 7. Da Drupal 11 a Drupal 12 si passa poi con un aggiornamento ordinario.

Quale PHP serve per il nuovo sito?

Drupal 11 richiede almeno PHP 8.3 e dalla versione 11.3 supporta anche PHP 8.5. Drupal 12 secondo la tabella dei requisiti richiederà PHP 8.5, quindi il nuovo server va preparato già con un ramo recente.

Il sito Drupal 7 deve restare fermo durante la migrazione?

No. Il vecchio sito resta pubblico e continua a ricevere contenuti, perché la Migrate API legge il suo database senza modificarlo e si può rieseguire. Il blocco delle modifiche serve solo per l’ultima importazione, poco prima del lancio.

Cosa cambia per Drupal 10 dopo il 9 dicembre 2026?

Drupal 10 smette di ricevere correzioni di sicurezza. Il passaggio a Drupal 11 è un aggiornamento sul posto, che richiede di portare il server almeno a PHP 8.3 e di verificare che moduli contrib e codice personalizzato non usino API rimosse.

IL PROSSIMO PASSO

Aggiorniamo
il tuo sito.

Indicaci versione della piattaforma, versione di PHP e sistema operativo. Ti risponderemo con una prima valutazione del percorso di upgrade e di cosa serve per arrivarci.

Richiedi una valutazione
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 ↗