Gestire Drupal in modo efficiente dalla riga di comando
Drupal può essere gestito completamente tramite l’interfaccia di amministrazione. Per molte attività quotidiane, il backend è anche il posto giusto: modificare contenuti, gestire utenti, adattare menu o cambiare semplici configurazioni. Tuttavia, non appena un sito Drupal viene gestito professionalmente, aggiornato regolarmente o sviluppato ulteriormente, la riga di comando è decisamente più veloce e affidabile. È proprio per questo che esiste Drush.
Drush sta per Drupal Shell ed è uno strumento da riga di comando specifico per Drupal. Con Drush, amministratori e sviluppatori possono eseguire direttamente nel terminale le tipiche attività di manutenzione, sviluppo e diagnostica. Tra queste rientrano la ricostruzione della cache, gli aggiornamenti del database, le verifiche di stato, le esportazioni della configurazione, l’attivazione o la disinstallazione di moduli, l’esecuzione di cron, la gestione degli utenti e molte altre attività.
Il grande vantaggio è semplice: invece di fare clic attraverso diverse pagine del backend, si esegue un comando e si ottiene subito un risultato. Soprattutto per aggiornamenti, risoluzione dei problemi, processi di deployment e lavori di manutenzione ricorrenti, Drush fa risparmiare molto tempo. Per agenzie, sviluppatori e gestori avanzati di siti web, Drush è quindi uno degli strumenti più importanti nell’ambiente Drupal.
Che cos’è Drush?
Drush non è un normale modulo Drupal da attivare nel backend. Si tratta di uno strumento da riga di comando separato, installato all’interno del progetto Drupal ed eseguito tramite terminale. I progetti Drupal moderni vengono generalmente gestiti con Composer. Anche Drush viene installato nel progetto come dipendenza Composer.
Quando Drush è configurato correttamente, puoi eseguire comandi come questi:
vendor/bin/drush cr
vendor/bin/drush updatedb
A seconda della configurazione del server e delle impostazioni dei percorsi, il comando può essere disponibile anche direttamente come drush. In molti ambienti di hosting, tuttavia, l’esecuzione specifica del progetto tramite vendor/bin/drush è la variante più pulita e più facilmente tracciabile.
Quando è utile Drush?
Drush è particolarmente utile quando non si modifica un sito Drupal solo occasionalmente, ma lo si gestisce tecnicamente. Per semplici modifiche ai contenuti, Drush non è necessario. Per manutenzione, sviluppo e amministrazione professionale, invece, offre un notevole aumento di efficienza.
Gli ambiti di utilizzo tipici sono:
- Svuotare e ricostruire la cache: Molto utile dopo modifiche al tema, ai moduli o alla configurazione.
- Eseguire aggiornamenti del database: Importante dopo aggiornamenti di Drupal Core o dei moduli.
- Verificare lo stato del sistema: Controllo rapido di versione Drupal, database, PHP, URI del sito e percorsi.
- Eseguire cron: Avviare manualmente le attività pianificate di Drupal.
- Attivare o disinstallare moduli: Particolarmente pratico negli ambienti di sviluppo e staging.
- Esportare e importare configurazioni: Importante per i workflow di deployment tra sistemi di sviluppo, test e produzione.
- Gestire utenti: Ad esempio reimpostare password o generare un link di accesso monouso.
- Automazione: I comandi Drush possono essere utilizzati in script, processi di deployment o procedure di manutenzione.
Chi utilizza Drupal solo come redattore di solito non ha bisogno di Drush. Chi invece installa, mantiene, estende o gestisce Drupal per progetti clienti dovrebbe conoscere Drush.
Requisiti presso CURIAWEB
Per utilizzare Drush è necessario avere accesso alla riga di comando del proprio pacchetto hosting. Presso CURIAWEB questo avviene tramite accesso SSH. SSH consente di connettersi in modo sicuro al server ed eseguire comandi.
Per l’utilizzo produttivo di Drush dovrebbero essere soddisfatti i seguenti requisiti:
- accesso SSH attivo,
- un’installazione Drupal gestita con Composer,
- una versione PHP adeguata secondo i requisiti di Drupal e Drush,
- accesso a Composer nella directory del progetto,
- autorizzazioni utente sufficienti per file, directory e accesso al database,
- conoscenza del percorso del progetto della propria installazione Drupal.
Negli ambienti di hosting condiviso è necessario prestare particolare attenzione all’utilizzo del corretto binario PHP CLI. La versione PHP del web server e la versione PHP nella riga di comando possono essere diverse. Se Drush restituisce errori inattesi, la versione PHP CLI è quindi uno dei primi punti da verificare.
Installare Drush
Nei siti Drupal moderni, Drush viene solitamente installato direttamente nel progetto tramite Composer. Collegati tramite SSH e passa alla directory principale del tuo progetto Drupal. È la directory in cui si trova il file composer.json.
composer require drush/drush
Dopo l’installazione, Drush si trova normalmente nella directory vendor/bin/. Puoi verificare l’installazione con il seguente comando:
Se viene visualizzata una versione di Drush, lo strumento è sostanzialmente disponibile. Successivamente puoi verificare con vendor/bin/drush status se Drush riconosce correttamente la tua installazione Drupal.
Eseguire Drush dalla directory corretta
Molti problemi con Drush nascono perché il comando viene eseguito nella directory sbagliata. Drush deve poter riconoscere l’installazione Drupal. Per questo motivo, passa prima alla directory del progetto in cui si trova il file composer.json. Nelle installazioni Drupal basate su Composer, la webroot pubblica si trova spesso in una sottocartella come web o docroot. La directory del progetto si trova quindi un livello sopra.
Una struttura tipica appare così:
composer.json
vendor/
web/
index.php
sites/
In questo esempio, Drush viene eseguito dalla directory /home/utente/progetto-drupal/:
vendor/bin/drush status
Se ti trovi nella directory sbagliata, Drush potrebbe non riuscire a eseguire completamente il bootstrap del sito. In tal caso possono comparire messaggi di errore anche se Drush è installato correttamente.
Panoramica dei comandi Drush più importanti
Drush dispone di moltissimi comandi. Per il lavoro quotidiano, tuttavia, bastano alcuni comandi principali che dovresti saper usare con sicurezza. La seguente panoramica mostra i comandi più utilizzati.
| Comando | Significato | Utilizzo tipico |
|---|---|---|
| vendor/bin/drush status | Mostra informazioni sullo stato dell’installazione Drupal. | Diagnosi e prima verifica. |
| vendor/bin/drush cr | Ricostruisce tutte le cache Drupal. | Dopo modifiche di configurazione, tema o modulo. |
| vendor/bin/drush updatedb | Esegue gli aggiornamenti del database in sospeso. | Dopo aggiornamenti del Core o dei moduli. |
| vendor/bin/drush cron | Avvia manualmente il cron di Drupal. | Manutenzione, indicizzazione, attività pianificate. |
| vendor/bin/drush pm:list | Elenca le estensioni e il loro stato. | Panoramica e controllo dei moduli. |
| vendor/bin/drush config:export | Esporta le configurazioni Drupal. | Deployment e controllo versione. |
| vendor/bin/drush config:import | Importa le configurazioni Drupal. | Applicazione di modifiche su staging o live. |
| vendor/bin/drush user:login | Genera un link di login monouso. | Ripristinare l’accesso amministratore quando necessario. |
Molti comandi Drush hanno forme abbreviate. Ad esempio, drush cr è la nota forma abbreviata di Cache Rebuild. Tuttavia è utile conoscere anche le forme estese, perché spesso sono più autoesplicative e vengono utilizzate più frequentemente nella documentazione.
Ricostruire la cache con Drush
Il comando Drush probabilmente più utilizzato è la ricostruzione della cache:
Questo comando svuota e ricostruisce le cache Drupal. È necessario o utile quando le modifiche non diventano visibili, quando nuove configurazioni devono essere applicate o quando dopo modifiche a moduli e temi si crea uno stato incoerente.
Una ricostruzione della cache è in linea di principio un comando sicuro, ma può causare temporaneamente un carico server più elevato perché Drupal deve ricostruire le cache. Su siti live molto frequentati dovrebbe quindi essere usato consapevolmente, soprattutto durante i picchi di traffico.
Eseguire aggiornamenti del database con Drush
Dopo aggiornamenti di Drupal Core o dei moduli installati possono essere necessari aggiornamenti del database. Questi possono essere eseguiti tramite il backend con update.php oppure tramite Drush. Il comando Drush è:
A seconda della versione di Drush, è comune anche la forma abbreviata drush updb. Prima di questo comando dovresti assolutamente creare un backup. Gli aggiornamenti del database modificano la struttura o i contenuti del database e non possono sempre essere annullati facilmente.
Una procedura sicura è la seguente:
- Creare un backup completo di file e database.
- Mettere il sito in modalità manutenzione.
- Eseguire gli aggiornamenti del codice tramite Composer.
- Eseguire gli aggiornamenti del database con
vendor/bin/drush updatedb. - Ricostruire la cache con
vendor/bin/drush cr. - Testare il sito.
- Disattivare nuovamente la modalità manutenzione.
Attivare e disattivare la modalità manutenzione con Drush
Durante aggiornamenti importanti o lavori di manutenzione critici, i visitatori non dovrebbero accedere a un sito aggiornato solo parzialmente. A questo scopo si utilizza la modalità manutenzione. Con Drush puoi impostare rapidamente questo stato:
vendor/bin/drush cr
Dopo aver completato la manutenzione, disattiva nuovamente la modalità manutenzione:
vendor/bin/drush cr
La successiva ricostruzione della cache è importante affinché Drupal tenga conto in modo affidabile dello stato modificato. Controlla poi il sito in una finestra del browser in cui non sei connesso come amministratore.
Gestire i moduli con Drush
Drush può attivare o disinstallare moduli. È però importante ricordare che nei progetti Drupal moderni il download e la gestione del codice dei moduli avvengono normalmente tramite Composer. Drush non sostituisce Composer. Attiva solo estensioni già presenti nel progetto.
Una procedura tipica per installare un nuovo modulo è questa:
vendor/bin/drush pm:enable pathauto
vendor/bin/drush cr
La forma abbreviata per attivare un modulo è spesso:
Per disinstallare utilizza:
Non disinstallare mai moduli alla cieca. Verifica prima se altri moduli, configurazioni o contenuti dipendono da essi. Soprattutto sui siti in produzione, tali modifiche dovrebbero essere effettuate prima in un ambiente di test.
Verificare lo stato di Drupal
Il comando status è ideale per ottenere una rapida panoramica tecnica:
A seconda della versione e dell’ambiente, Drush mostra informazioni come versione Drupal, URI del sito, connessione al database, versione PHP, percorso di configurazione, percorsi dei file e versione Drush. Queste informazioni sono particolarmente utili per la risoluzione dei problemi, i casi di supporto e i lavori di migrazione.
Se Drush non riesce a mostrare uno stato valido, verifica prima:
- Ti trovi nella directory di progetto corretta?
- Drush è installato nel progetto in
vendor/bin/drush? - L’installazione Drupal è completamente configurata?
- Il file
settings.phpesiste ed è corretto? - La versione PHP nella riga di comando è corretta?
- Il database è raggiungibile?
Eseguire cron manualmente con Drush
Drupal utilizza cron per attività ricorrenti. Tra queste rientrano l’elaborazione delle code, l’aggiornamento di determinati dati, la pulizia di informazioni temporanee o l’indicizzazione dei contenuti. Cron può essere configurato automaticamente, ma può anche essere avviato manualmente tramite Drush:
Questo comando è utile se desideri testare se le attività cron funzionano correttamente o se determinati processi in background devono essere eseguiti subito. Nei siti più grandi, cron dovrebbe essere automatizzato in modo affidabile affinché le attività di manutenzione non vengano dimenticate.
Esportare e importare configurazioni
Uno dei punti di forza più importanti delle versioni moderne di Drupal è la gestione della configurazione. Le impostazioni di tipi di contenuto, campi, Views, menu, ruoli, formati di visualizzazione e molti altri elementi strutturali possono essere esportate e versionate. Drush è uno strumento centrale per questo.
Esportare la configurazione:
Importare la configurazione:
In forma abbreviata, questi comandi vengono spesso utilizzati come drush cex e drush cim. Sono particolarmente rilevanti quando un sito viene gestito in più ambienti, ad esempio in locale, su staging e in produzione.
Un workflow tipico:
- Modificare la configurazione localmente o in un ambiente di sviluppo.
- Esportare la configurazione con Drush.
- Versionare le modifiche in Git.
- Distribuire codice e configurazione nell’ambiente di destinazione.
- Importare lì la configurazione con Drush.
- Eseguire aggiornamenti del database e ricostruzione della cache.
Le importazioni di configurazione dovrebbero essere eseguite con grande attenzione sui siti in produzione. Un’importazione può sovrascrivere impostazioni esistenti. Verifica quindi in anticipo quali modifiche verranno importate.
Ripristinare l’accesso utente con Drush
Drush è utile anche quando l’accesso amministratore non funziona più. Con il seguente comando puoi generare un link di login monouso per un utente:
A seconda delle necessità, puoi indicare un utente specifico. Il link generato dovrebbe essere utilizzato solo tramite canali sicuri e non deve essere condiviso pubblicamente. Consente un accesso diretto ed è quindi critico dal punto di vista della sicurezza.
Per l’uso in produzione è inoltre consigliato:
- utilizzare password robuste,
- configurare l’autenticazione a due fattori per gli amministratori,
- non utilizzare account amministratore condivisi,
- disattivare gli account utente inutilizzati,
- controllare regolarmente ruoli e autorizzazioni.
Drush e Composer: chiara suddivisione dei compiti
Drush e Composer vengono spesso utilizzati insieme, ma svolgono compiti diversi. Composer gestisce pacchetti PHP, Drupal Core, moduli, temi e librerie. Drush esegue comandi specifici di Drupal su un’installazione esistente.
| Attività | Strumento | Esempio |
|---|---|---|
| Aggiungere codice modulo | Composer | composer require drupal/metatag |
| Attivare modulo | Drush | vendor/bin/drush en metatag |
| Aggiornare Core | Composer | composer update drupal/core-recommended --with-dependencies |
| Eseguire aggiornamento database | Drush | vendor/bin/drush updatedb |
| Ricostruire cache | Drush | vendor/bin/drush cr |
Questa separazione è importante per progetti Drupal stabili. Usa Composer per dipendenze e codice. Usa Drush per le operazioni interne di Drupal.
Procedura di aggiornamento sicura con Composer e Drush
Un processo professionale di aggiornamento Drupal combina Composer, Drush, backup e test. La procedura esatta dipende dal progetto. Un flusso tipico può essere il seguente:
- Creare un backup: Eseguire un backup completo di file e database.
- Pianificare una finestra di manutenzione: Gli aggiornamenti importanti non dovrebbero essere eseguiti durante le ore di punta.
- Attivare la modalità manutenzione: I visitatori vedono una pagina di manutenzione invece di possibili messaggi di errore.
- Aggiornare il codice: Aggiornare Drupal Core e moduli tramite Composer.
- Eseguire aggiornamenti del database: Con
vendor/bin/drush updatedb. - Ricostruire la cache: Con
vendor/bin/drush cr. - Testare il sito: Verificare backend, frontend, moduli, login, tipi di contenuto importanti e funzioni critiche.
- Disattivare la modalità manutenzione: Rendere nuovamente disponibile il sito.
- Eseguire il monitoraggio: Controllare messaggi di log e rapporti di errore.
Sui siti in produzione, questa procedura dovrebbe essere prima testata in un ambiente di staging. In questo modo è possibile individuare conflitti tra moduli, dipendenze modificate o problemi del database prima che i visitatori ne siano interessati.
Drush nei workflow di staging e deployment
Drush mostra tutta la sua forza nei workflow professionali. Quando lavori con ambienti di sviluppo, staging e produzione, i comandi Drush possono standardizzare passaggi ricorrenti. Questo riduce il rischio di errori manuali.
Passaggi tipici di deployment possono essere:
vendor/bin/drush updatedb -y
vendor/bin/drush config:import -y
vendor/bin/drush cr
Il parametro -y conferma automaticamente le domande. È pratico per deployment automatizzati, ma dovrebbe essere utilizzato solo se il processo è stato testato e compreso. Sui sistemi in produzione, una conferma automatica potrebbe altrimenti causare modifiche indesiderate.
Errori frequenti e relative cause
Gli errori Drush possono sembrare complicati a prima vista. Tuttavia, molti problemi hanno cause tipiche. La seguente panoramica aiuta nella prima diagnosi.
| Problema | Possibile causa | Soluzione |
|---|---|---|
| Comando Drush non trovato | Drush non è installato o il percorso è errato. | Installare con composer require drush/drush e usare vendor/bin/drush. |
| Drupal non viene riconosciuto | Comando eseguito nella directory sbagliata. | Passare alla directory del progetto con composer.json. |
| Errore database | Dati del database errati o database non raggiungibile. | Verificare settings.php, server database e autorizzazioni utente. |
| Errore PHP nella CLI | Versione PHP diversa nel terminale rispetto al web server. | Verificare la versione PHP CLI e usare il corretto binario PHP. |
| Permission denied | Permessi di file o directory non adeguati. | Controllare proprietario, permessi di gruppo e permessi di scrittura. |
Durante la risoluzione dei problemi, vendor/bin/drush status è spesso il miglior primo comando. Mostra se Drush riconosce correttamente il sito.
Regole di sicurezza per Drush
Drush è potente. Proprio per questo i comandi devono essere eseguiti con attenzione. Alcuni comandi modificano database, configurazione, utenti o estensioni attivate. Gli errori possono avere effetto immediato sul sito live.
Osserva quindi queste regole di sicurezza:
- Esegui comandi in produzione solo se ne comprendi l’effetto.
- Crea sempre backup prima di aggiornamenti e operazioni sul database.
- Per modifiche più importanti, lavora prima in un ambiente di staging.
- Non utilizzare accessi SSH condivisi.
- Limita l’accesso SSH alle persone che ne hanno davvero bisogno.
- Non salvare password nella shell history o in script non sicuri.
- Utilizza chiavi SSH sicure e passphrase robuste.
- Controlla i log Drupal dopo i lavori di manutenzione.
I comandi con conferma automatica come -y dovrebbero essere utilizzati solo in workflow controllati. Per lavori manuali è spesso più sicuro confermare consapevolmente le richieste.
Drush e performance
Drush di per sé non rende automaticamente il tuo sito più veloce. Aiuta però a svolgere in modo più efficiente lavori di manutenzione rilevanti per le prestazioni. Tra questi rientrano ricostruzioni della cache, esecuzioni cron, aggiornamenti, importazioni di configurazione e processi di deployment. Soprattutto nei siti Drupal complessi con molti moduli, Views e tipi di contenuto, una gestione rapida via CLI può ridurre notevolmente il lavoro amministrativo.
Per progetti molto estesi o ambienti di sviluppo con frequenti processi Composer e Drush, un hosting più potente può essere sensato. Maggiore potenza CPU, memoria e prestazioni I/O più rapide incidono positivamente soprattutto sulle operazioni Composer, sulla costruzione della cache e sulle operazioni del database.
Per progetti Drupal esigenti, ambienti di staging o workflow di sviluppo personalizzati, un VPS Cloud Server di CURIAWEB può essere una soluzione valida. Offre più risorse e maggiore flessibilità tecnica rispetto ai classici ambienti di hosting condiviso.
Breve checklist per l’utilizzo di Drush
- L’accesso SSH è attivo e configurato in modo sicuro.
- Il sito Drupal viene gestito con Composer.
- Drush è installato specificamente per il progetto tramite Composer.
- Esegui Drush dalla directory di progetto corretta.
vendor/bin/drush statusriconosce correttamente il sito.- Prima degli aggiornamenti esiste un backup aggiornato.
- La modalità manutenzione viene utilizzata per lavori importanti.
- Gli aggiornamenti del database vengono eseguiti dopo gli aggiornamenti del codice.
- Dopo le modifiche la cache viene ricostruita.
- I comandi in produzione vengono prima testati in staging se esiste un rischio.
FAQ su Drush
Drush è un modulo Drupal?
No. Drush è uno strumento da riga di comando separato per Drupal. Normalmente viene installato tramite Composer nel progetto Drupal ed eseguito via SSH o terminale.
Ho bisogno di Drush per un semplice sito Drupal?
Non necessariamente. Per la sola modifica dei contenuti è sufficiente il backend Drupal. Per aggiornamenti, sviluppo, manutenzione, diagnostica e deployment, Drush è però molto consigliato.
Posso scaricare moduli con Drush?
Nei progetti Drupal moderni, il codice dei moduli dovrebbe essere aggiunto tramite Composer. Drush può attivare o disinstallare moduli installati, ma non sostituisce la gestione dei pacchetti tramite Composer.
Perché drush non funziona, ma vendor/bin/drush sì?
In tal caso Drush è probabilmente installato solo a livello di progetto e non è disponibile globalmente nel percorso di sistema. In molti casi è corretto e persino consigliato.
Cosa significa drush cr?drush cr sta per Cache Rebuild. Il comando ricostruisce le cache Drupal e viene spesso utilizzato dopo modifiche di configurazione, moduli o temi.
Dovrei usare Drush su un sito live?
Sì, ma con cautela. Molti lavori di manutenzione vengono eseguiti professionalmente tramite Drush. Prima di comandi rischiosi, tuttavia, dovresti creare backup e, se possibile, testare le modifiche in un ambiente di test.
Qual è la differenza tra Drush e Composer?
Composer gestisce dipendenze di codice come Drupal Core, moduli e librerie. Drush esegue comandi amministrativi specifici di Drupal, ad esempio ricostruzioni della cache, aggiornamenti del database o importazioni di configurazione.
Conclusione: Drush è una conoscenza fondamentale per la gestione professionale di Drupal
Drush è uno degli strumenti più importanti per l’amministrazione professionale di Drupal. Accelera notevolmente manutenzione, aggiornamenti, diagnostica, sviluppo e deployment. Chi gestisce tecnicamente progetti Drupal dovrebbe padroneggiare i comandi Drush di base e sapere quando Composer, Drush o il backend è lo strumento giusto.
Drush è particolarmente prezioso per attività ricorrenti: ricostruire la cache, eseguire aggiornamenti del database, avviare cron, esportare configurazioni o gestire moduli. In combinazione con accesso SSH, Composer, backup e un ambiente di staging, crea un workflow pulito per siti Drupal affidabili.