Si prende come esempio il sito default di UNIMIBd9 prod.
Prima di iniziare serve avere un dump del database.
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" 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.
Se il dump è in formato compresso, serve scompattarlo (es: 20221116150754.db.sql).
Passaggi:
1. si scarica il codice sorgente e 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 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".
In 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 (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. importare il database; in questo caso si è posto il dump (pippo.sql) nella root del progetto:
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 (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 5.