logo

Extra Block Types (EBT) - Nuova esperienza con Layout Builder❗

Extra Block Types (EBT) - tipi di blocchi stilizzati e personalizzabili: Slideshows, Tabs, Cards, Accordion e molti altri. Impostazioni integrate per sfondo, DOM Box, plugin javascript. Vivi oggi il futuro della costruzione dei layout.

Demo moduli EBT Scarica moduli EBT

❗Extra Paragraph Types (EPT) - Nuova esperienza con Paragraphs

Extra Paragraph Types (EPT) - insieme di moduli basati su paragrafi in modo analogo.

Demo moduli EPT Scarica moduli EPT

Scorri

Aggiungere Composer a un sito esistente

06/10/2025, by Ivan

Semplificato in Drupal 8.8.0

Nota: se hai iniziato il tuo progetto utilizzando Drupal versione 8.8.0 o successiva, il tuo sito utilizza già la struttura di file corretta ed è pronto per la conversione a Composer.

Questa pagina è una guida passo per passo per aggiungere manualmente il supporto a Composer in un sito esistente che era stato installato senza Composer. Questa guida è per te se hai installato Drupal 8 manualmente da un archivio o hai utilizzato un modello Composer deprecato come drupal/drupal.

Per i siti creati con Drupal 8.8.0 o versioni successive

Anche se hai installato Drupal 8.8.0 da un archivio, Composer è stato preinstallato. Pertanto, dovresti essere in grado di gestire il tuo sito con Composer senza ulteriori azioni di conversione.

Per i siti creati prima di Drupal 8.8.0

Il file composer.json fornito con gli archivi scaricati da https://www.drupal.org/download prima di Drupal 8.8.0 non era destinato all’uso con un sito gestito tramite Composer.

Se desideri passare da una gestione manuale a una gestione tramite Composer per installare e aggiornare il core di Drupal e i moduli aggiuntivi, devi prima modificare il file composer.json del tuo sito.

Messaggi di errore tipici di Composer che possono indicare un file composer.json errato:

Nothing to install or update (even though updates exist)

Installation request for drupal/drupal No version set (parsed as 1.0.0) -> satisfiable by drupal/drupal[No version set (parsed as 1.0.0)].

don't install drupal/core 8.x.x | remove drupal/drupal No version set (parsed as 1.0.0)

Your requirements could not be resolved to an installable set of packages.

A volte i problemi con i modelli Composer possono essere risolti eliminando il file di blocco e la cartella vendors (composer.lock e vendor/) prima di eseguire un aggiornamento, ma convertire un sito Drupal 8 esistente in un progetto gestito tramite il modello Composer consigliato nella guida di installazione di Drupal (3.5. Utilizzare Composer per scaricare e aggiornare i file) è una soluzione più stabile per problemi futuri di aggiornamento.

Gli strumenti gocomposer e composerize drupal tentano di automatizzare la conversione dei vecchi siti in progetti Composer, ma la conversione manuale è abbastanza semplice anche per siti di grandi dimensioni e non richiede molto tempo.

Alla fine del processo, il tuo progetto avrà la struttura di directory raccomandata. La configurazione di Composer (composer.json, composer.lock, ecc.), Drush e la directory vendor saranno collocati fuori dalla root web. La root originale del sito conterrà una nuova cartella chiamata web/, dove si troverà il vero sito. Se il tuo progetto utilizza una struttura di directory diversa, dovrai aggiornare la configurazione del tuo server web per puntare alla nuova directory web/. Ci torneremo più avanti.

TL; DR?

  1. Installa un nuovo sito Drupal utilizzando il modello Composer attuale in una nuova directory.
  2. Copia tutti i temi, moduli, file e impostazioni personalizzati nel nuovo progetto (controlla due volte la struttura delle directory).
  3. Trasferisci le impostazioni nel nuovo progetto.
  4. Aggiungi tutti i moduli installati al nuovo file composer.json ed esegui l’installazione con Composer.
  5. Aggiorna il database e svuota la cache (drush updb; drush cr).
  6. Aggiorna la configurazione del server web.

STORIA COMPLETA

In queste istruzioni si presume che il tuo sito esistente si trovi in /var/www/sites/html/ e che creerai il nuovo sito in /var/www/sites/new_html/. Adatta i percorsi in base alla tua configurazione.

Prima di iniziare

Se intendi “comporre” un vecchio sito Drupal, il core e i moduli contrib probabilmente non saranno aggiornati alle versioni più recenti. Se segui questa guida alla lettera, il core e i moduli verranno aggiornati automaticamente. Questo di solito è ciò che si desidera, ma considera la configurazione del tuo sito. Ci sono motivi validi per non aggiornare tutto all’ultima versione? Potresti avere un’installazione che dipende da versioni più vecchie di alcune librerie o moduli.

Se desideri aggiornare tutto alle ultime versioni, segui semplicemente la guida e risolvi eventuali problemi dopo l’aggiornamento. Dopo l’aggiornamento potresti vedere errori o avvisi legati alle versioni più recenti dei moduli: cerca i messaggi di errore su Google per trovare eventuali patch o soluzioni.

Se preferisci mantenere le versioni originali e aggiornare in seguito, assicurati di installare le stesse versioni di moduli e core utilizzate sul vecchio sito. Consulta le guide per composer create-project su come scaricare una versione specifica del core o una versione specifica dei moduli contrib. Indica queste versioni nei comandi composer create-project o composer require (ad esempio composer require vendor/package:version).

1. Installa un nuovo sito Drupal

cd /var/www/sites
composer create-project drupal/recommended-project:~8.8.0 new_html --stability dev --no-interaction

Questo creerà la directory new_html/ con le cartelle vendors e web (= webroot) e i file composer.json, composer.lock, ecc. Se il vecchio progetto non seguiva questa struttura, dovrai abituarti a eseguire drush e composer da questa nuova directory.

In precedenza veniva consigliato l’uso di drupal-composer/drupal-project, ora deprecato in favore del modello ufficiale drupal/recommended-project.

2. Copia i file nel nuovo progetto Composer

Nota: le seguenti istruzioni sono necessarie solo per siti creati con versioni di Drupal precedenti alla 8.8.0.

Copia i tuoi moduli, temi e librerie personalizzati dal vecchio progetto al nuovo, assicurandoti che si trovino nelle directory corrette, poiché la struttura potrebbe essere diversa.

I percorsi corretti sono definiti nella sezione “installer-paths” del composer.json:

"extra": {
  "installer-paths": {
    "web/core": ["type:drupal-core"],
    "web/libraries/{$name}": ["type:drupal-library"],
    "web/modules/contrib/{$name}": ["type:drupal-module"],
    "web/profiles/contrib/{$name}": ["type:drupal-profile"],
    "web/themes/contrib/{$name}": ["type:drupal-theme"],
    "drush/Commands/{$name}": ["type:drupal-drush"]
  }
}

Nel vecchio sito, i moduli probabilmente si trovavano in /var/www/sites/html/modules/. Nel nuovo sito dovranno trovarsi in /var/www/sites/new_html/web/modules/.

  • Temi personalizzati: /var/www/sites/new_html/web/themes/custom/
  • Moduli personalizzati: /var/www/sites/new_html/web/modules/custom/
  • Librerie: /var/www/sites/new_html/web/libraries/
  • File caricati: /var/www/sites/new_html/web/sites/default/files/

Assicurati che il server web abbia i permessi di scrittura sulla cartella dei file.

sudo chown -R vftp:www-data /var/www/sites/new_html/web/sites/default/files
sudo find /var/www/sites/new_html/web/sites/default/files -type d -exec chmod u=rwx,g=rwx,o= '{}' \;
sudo find /var/www/sites/new_html/web/sites/default/files -type f -exec chmod u=rw,g=rw,o= '{}' \;

Rimuovi le cartelle temporanee come php/, js/, styles/, css/ se le hai copiate dal vecchio sito. Drupal le rigenererà automaticamente dopo un drush cr.

3. Trasferisci settings.php nel nuovo progetto

Copia le informazioni del database e altre impostazioni dal vecchio settings.php al nuovo. Verifica i parametri $databases['default']['default'], $settings['hash_salt'] e $settings['trusted_host_patterns']. Assicurati che $config_directories['sync'] punti a una directory esistente e scrivibile, preferibilmente fuori dal webroot.

4. Aggiungi i moduli al nuovo composer.json

Ora devi aggiungere tutti i moduli del tuo progetto al nuovo file composer.json. Puoi farlo manualmente o tramite il comando composer require.

Per esempio:

composer require drupal/devel drupal/pathauto drupal/token

Usa composer require --dev per i moduli di sviluppo.

5. Aggiorna il database e svuota la cache

drush updb
drush cr

6. Aggiorna la configurazione del server web

Configura il server per puntare alla nuova directory web/ (ad esempio /var/www/sites/new_html/web/). Se usi PHP-FPM, aggiorna anche la configurazione dei pool.

7. Risoluzione dei problemi

Se visualizzi l’errore Missing $settings['hash_salt'] in settings.php, copia il valore dal vecchio sito o genera una nuova chiave con:

drush php-eval 'echo \Drupal\Component\Utility\Crypt::randomBytesBase64(55) . "\n"'

Quindi incollala nel tuo nuovo settings.php sotto $settings['hash_salt'].