Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Si prende come esempio il sito default di UNIMIBd9 prod.

Prima di iniziare serve avere un dump del database di UNIMIB default prod.
Il dump si può scaricare o tramite CLI (usando l'utenza portalidrupal) o attraverso il DIM; in quest'ultimo caso, si va alla voce "View backups", si seleziona il file dump (es: 20221116150754.db.sql.gz) e si clicca su Download. Se nella pagina "View backups" se non è presente alcun dump, occorre crearne uno andando alla voce "Make backups", scegliendo "DB" come type e cliccando su "Submit": ora nella pagina "View backups" sarà presente un file dump. Una volta scaricato il file
Se il dump è in formato compresso, serve scompattarlo (es: 20221116150754.db.sql).

...

1. si scarica il codice sorgente in una nuova cartellae ci si sposta al suo interno:
git clone git@gitlab.cineca.it:drupal/prod_unimibd9.git
cd prod_unimibd9

2. si inizializza l'app nella root del progetto:
lando init \
  --source cwd \
  --recipe drupal9 \
  --webroot web \
  --name unimib

"cwd" sta per "current working directory", in altre parole si dice a Lando che abbiamo già a disposizione la codebase e siamo nella sua root.
"drupal9" specifica che UNIMIB è un sito in Drupal 9.
"web" indica che la webroot di UNIMIB si trova nella cartella /web della codebase, come tutti i nostri progetti Drupal. Se si volesse fare coincidere root e webroot, lo si indica usando il punto ("--webroot .")

3. si fa il building dell'app:
lando start

4. si aggiunge modifica la cartella /web/sites:

  • se presente il file /web/sites/sites.php, cancellarlo o commentare la riga del require() al suo interno. Diversamente il browser mostrerà "The website encountered an unexpected error. Please try again later.".
  • controllare nel file web/sites/default/settings.php la presenza del codice $settings['trusted_host_patterns'] = [] e nel caso commentarlo. 
  • aggiungere in fondo al file web/sites/default/settings.php il seguente codice:

    $databases['default']['default'] = array (
      'database' => 'drupal9',
      'username' => 'drupal9',
      'password' => 'drupal9',
      'prefix' => '',
      'host' => 'database.unimib.internal',
      'port' => '3306',
      'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
      'driver' => 'mysql',
    );

Il valore di 'database', 'username' e 'password' coincide con il valore passato al flag "–recipe", nel "lando init". Ciò significa che se stessimo lavorando in Drupal 8, il valore da inserire per databsae, username e password sarebbe "drupal8".

Il nome dell'host cambia a seconda del nome del progetto:
database.[nomeprogetto].internal
Se il progetto si fosse chiamato "pippo", l'host sarebbe diventato "database.pippo.internal".

Se presente nel file, commentare $settings['trusted_host_patterns'].

Se è già presente un $databases['default']['default'] all'interno del file, provare a modificarlo (da testare).
In alterantivaIn caso di problemi, rimuovere la cartella /web/sites e sostituirla con la cartella /web/sites di un semplice progetto Lando in Drupal 9, in cui è stato installato Drupal (come quello della ad esempio come il progetto descritto nella pagina "Primi passi").
Controllare che le cartelle /sites e /sites/default siano accessibili anche agli utenti non root; in caso contrario (dovrebbe comparire l'icona di un lucchetto sopra la cartella), eseguire il comando:
sudo chmod -R 777 sites

5. porre importare il database; in questo caso si è posto il dump (es: pippo.sql) nella root del progetto ed importare il database:
lando db-import pippo.sql

Se il dump proviene da una versione MySQL precedente la versione utilizzata nel progetto Lando, durante l'importazione potrebbe comparire l'errore:
Unknown collation: 'utf8mb4_unicode_ci'
Per risolverlo, occorre aggiornare il formato UTF del file dump, andando a sostituire le seguenti stringhe:
utf8mb4_0900_ai_ci          con       utf8_unicode_ci
utf8mb4                                 con       utf8
utf8_unicode_520_ci         con       utf8_unicode_ci
Esistono diversi metodi per modificare un file dump: uno di questi è usando l'editor GNU nano. Per farlo ci si porta col terminale nella cartella dove si trova il file, si esegue il comando:
nano pippo.sql
e si usano i comandi di sostituzione.

6. aprire il sito nel browser e procedere con l'installazione. Quando vengono richieste le credenziali per il database, inserire "drupal9" per i campi nome, utente e password, mentre "database.unimib.internal" per il campo host. Quindi procedere con l'installazione.
A fine processo, clicca sul link del sito ed inizia a sviluppare (es: https://unimib.lndo.site/).

Se il sito mostra problemi di CSS e JS, si consiglia di aggiungere le seguenti righe al file settings.php:
$config['system.performance']['css']['preprocess'] = 0;
$config['system.performance']['js']['preprocess'] = 0;
ed eseguire i comandi:
lando rebuild
lando drush cr
In questo modo, il sito si comporterà come se le opzioni "Unire i file CSS" ed "Unire i file JavaScript" alla pagina /admin/config/development/performance nel backoffice fossero entrambe non spuntate.


MEDIA
Per aggiungere i media (immagini, video, ...) nel progetto, scaricare la cartella /files come si è fatto per il dump del database (es: 20221122140605.files.tar.gz). Una volta scaricata e scompattata, spostarne il contenuto all'interno di /web/sites/default/files.


NOTA BENE!
Il comando "lando destroy" rimuove sia il building che il database. Ciò significa che, una volta distrutta l'applicazione, occorre rieseguire lando start e riprendere dal punto 65.