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.
3. si fa il building dell'app:
lando start
4. si aggiunge 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 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 settings.php, commentare $settings['trusted_host_patterns'] = [].
Se presente il file /web/sites/sites.php, cancellarlo (o commentare la riga del require al tuo interno). Diversamente il browser mostra "The website encountered an unexpected error. Please try again later.".
Se è già presente un $databases['default']['default'] all'interno del file, provare a modificarlo (da testare).
In alterantiva, rimuovere la cartella /web/sites e sostituirla con la cartella /web/sites di un semplice progetto Lando in Drupal 9, in cui Drupal è stato installato (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
6. aprire il sito nel browser.
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, 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 6.