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.
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.
- 01Drupal 7PHP 5.6 – 8.3
Fuori supporto dal 5 gennaio 2025, si migra su un sito nuovo
- 02Drupal 9 e 10PHP 7.3 – 8.4
Si aggiorna sul posto; Drupal 10 chiude il 9 dicembre 2026
- 03Drupal 11.4PHP 8.3 – 8.5
Arrivo delle migrazioni da Drupal 7, sicurezza fino ad aprile 2027
- 04Drupal 12PHP 8.5
Atteso a dicembre 2026, si raggiunge da Drupal 11 con un aggiornamento ordinario
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.
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 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 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.
- 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.
- 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.
- 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.
- 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.
Per approfondire.
Da Drupal 7 a Drupal 11: perché è una migrazione e non un aggiornamento
Drupal 7 è fuori supporto da gennaio 2025 e per arrivare a Drupal 11 serve costruire un sito nuovo e importare i dati con la Migrate API. Vediamo cosa si migra, cosa si ricostruisce, i comandi da usare e perché il passaggio va completato prima di Drupal 12.
Leggi l’approfondimentoMigrare un CMS a PHP 8: perché si aggiorna sempre tutto lo stack
Perché portare un CMS su PHP 8 significa aggiornare core, estensioni, tema e codice su misura, quali sono i requisiti di WordPress, WooCommerce, PrestaShop, Joomla e Drupal, in che ordine procedere e come proteggere la produzione durante il lavoro.
Leggi l’approfondimentoBackport o migrazione? Come scegliere quando una CVE colpisce PHP in produzione
Tempi, rischi e impatto sull’applicazione delle due strade quando una vulnerabilità colpisce un PHP fuori supporto, le domande da fare prima di scegliere e perché quasi sempre conviene combinarle: backport subito, migrazione pianificata.
Leggi l’approfondimentoPrima 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.
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 valutazioneLunedì – venerdì · 09:30 – 19:30
+39 340 985 4556 ↗