Drush

Version imprimableEnvoyer par emailversion PDF

Drush permet de gérer des sites Drupal en ligne de commande.

Installer Drupal depuis Drush

Pour installer Drupal directement depuis votre Drush, tapez ceci (adaptez les variables nécessaires) :

wget http://ftp.drupal.org/files/projects/drupal-7.14.tar.gz

Si besoin, copiez dans le répertoire parent de votreserveur apache :

cp -R * ../
cp -R .htaccess ../

Installer automatiquement

A la place des commandes précédentes, vous pouvez utiliser la commande suivante qui va télécharger et décompresser Drupal dans un sous-dossier "drupal-version" :

drush dl drupal

drush site-install standard --db-url=mysql://user:pass@localhost/bdd --site-name="WindowsLinux.net" --account-name=admin --account-pass=password --site-mail=postmaster@exemple.com --locale=fr_FR

 

Et pour finir :

 chown -R www-data.www-data

 

Installez quelques modules utiles

 

drush @monsite dl l10n_update && drush @monsite dl backup_migrate && drush @monsite dl backup_migrate_files && drush @monsite dl insert && drush @monsite dl image_resize_filter && drush @monsite dl logintoboggan && drush @monsite dl pathauto && drush @monsite dl subpathauto && drush @monsite dl transliteration && drush @monsite dl ckeditor && drush @monsite dl extlink && drush @monsite dl google_analytics && drush @monsite dl views && drush @monsite dl user_restrictions

Activez ces modules :

 

drush @monsite en l10n_update -y && drush @monsite en backup_migrate -y && drush @monsite en backup_migrate_files -y && drush @monsite en insert -y && drush @monsite en image_resize_filter -y && drush @monsite en logintoboggan -y && drush @monsite en pathauto -y && drush @monsite en subpathauto -y && drush @monsite en transliteration -y && drush @monsite en ckeditor -y && drush @monsite en extlink -y && drush @monsite en googleanalytics -y && drush @monsite en views_ui -y && drush @monsite en user_restrictions_ui

Pensez à ajouter le filtre "image resize filter" à un format de rédaction de texte.

Si besoin, installez drush language :

 

drush dl drush_language
drush @monsite language-add fr
drush @monsite language-enable fr
drush @monsite l10n-update

Colorbox :

 

drush @monsite colorbox-plugin

CKEditor :

 

drush @monsite ckeditor-download

Désactivez les modules non utilisés :

 

drush @monsite dis overlay

Aide complète de Drush

Générer un fichier HTML nommé "test.html" via la commande :

 

drush help --html > test.html

Configuration

Erreurs possibles

Une erreur de ce type peut être rencontrée :

Command needs a higher bootstrap level to run - you will need invoke drush from a more functional Drupal environment to run this command.

Tapez cette commande pour trouver la source de votre problème :

 

drush -d|--debug

Configuration des aliases

Sous debian, vous pouvez copier le fichier aliases.drushrc.php depuis /usr/share/doc/drush/examples/example.aliases.drushrc.php.gz tout en le décompressant avec la commande :

 

gzip -d example.aliases.drushrc.php.gz

Placez ce fichier dans /etc/drush/, éditez le pour avoir quelque chose comme ceci :

 

$aliases'site1' = array( 'root' => '/var/www/site1.net/www', 'uri' => 'www.site1.net', );
$aliases'site2' = array( 'root' => '/var/www/site2.fr/www', 'uri' => 'www.site2.fr', );

Ensuite, vous pouvez exécuter les commandes :

 

drush @site1 st
drush @site1 up -y

Synchroniser un site de développement avec un site de production

Depuis Drush 4.5, éditez le fichier aliases.drushrc.php comme ceci :

 

$aliases'dev' = array(

'uri' => 'http://dev.site.tld',

'root' => '/chemin/vers/dev/www',

'db-url' => 'mysql://devmysqluser:devmysqlpass@devmysqlhost/devdatabasename',

'path-aliases' => array(

'%drush' => '/usr/bin/drush',

'%drush-script' => '/usr/share/php/drush/drush.php', '%dump-dir' => '/path/to/save/database/dumps', ), );

$aliases'production' = array(

'uri' => 'http://www.site.tld',

'root' => '/chemin/vers/production/www',

'db-url' => 'mysql://prodmysqluser:prodmysqlpass@prodmysqlhost/proddatabasename',

'path-aliases' => array( '%drush' => '/usr/bin/drush', '%drush-script' => '/usr/share/php/drush/drush.php', ), ); 

  • Synchronisez le site de développement avec le site de production :

 

drush sql-sync @dev @production

  • Synchronisez et copiez les fichiers, excluant sites/default/settings.php par défaut :

 

drush rsync @dev @production 

Pensez à ajouter "-y" aux commandes ci-dessus pour valider automatiquement toute question posée par Drush.

Commandes utiles

Drush et SQL

Drush permet d'exécuter certaines commandes SQL.

La commande "drush sql-cli" ou "drush sqlc" vous connecte à la base de données de votre site en utilisant les informations du fichier "settings.php".

Vous pouvez injecter une sauvegarde SQL d'un site Drupal par la commande :

drush sqlc < mabase.sql

Changer le thème d'un site

Désactiver un theme:

drush -l http://example.com/ pm-disable theme_name

Activer un theme:

drush -l http://example.com/ pm-enable theme_name

Changer un theme:

drush -l http://example.com/ vset theme_default theme_name

Vérifier l'état de chaque thème :

drush pml | fgrep -e Theme

Mettre à jour tous les sites d'un serveur

Créer "foo.aliases.drushrc.php" (exemple : par un lien symbolique qui pointe sur "aliases.drushrc.php").

La commande :

drush @foo st

donnera le status de tous les sites déclarés dans le fichier aliases.drushrc.php.

drush @foo up

metteras à jour tous les sites.

Note : une autre technique de mise à jour est expliquée sur cette page : http://fuerstnet.de/en/drupal-upgrade-easier

Passer à la version "dev" d'un module

Si vous avez un module déjà installé en version stable, vous pouvez le réinstaller par sa version de développement par la commande :

drush dl MODULENAME --dev

Mettre à jour sur des serveurs n'ayant pas drush

Voici une piste :

  • Stocker tous les sites Drupal dans des dépôts GIT.
  • Créer une branche / repo séparée pour Drupal Core est autant que nécessaire pour /sites/*.
  • Il est alors possible d'effectuer les mises à jours avec une commande pull.
  • Pour les hébergements mutualisés, effectuer ce pull localement, et synchroniser avec LFTP aux différents serveurs.

Liens

Externes

http://drush.ws/help/docs

http://drush.ws/help/examples

http://drushmake.me/

Sponsors