Recherche dans le site

Syndication

Partenariats

Installer Drush sous Windows

23 août 2010

Présentation de Drush

Drush (Drupal Shell) est un module permettant de contrôler Drupal via la ligne de commande Il accélère considérablement le travail du webmaster/développeur grâce à une série de commandes particulièrement efficaces. Il permet de télécharger, activer, désinstaller, désactiver, mettre à jour les modules d'une installation Drupal et bien d'autres fonctions annexes.

Pour installer un nouveau module, par exemple Administration Menu, il suffit de faire :

drush dl admin_menu

Ensuite, pour l'activer, il suffit de continuer par :

drush enable admin_menu

Ces deux lignes de commandes sont évidemment plus rapides que le téléchargement manuel d'un module, son extraction, sa copie dans le répertoire des modules, puis son activation dans la page des modules.

D'autres commandes sont disponibles : on les trouvera dans la documentation officielle de Drush ou dans la fiche PDF Drush Cheat Sheet à imprimer.

Ingrédients

Pour pouvoir utiliser Drush, il faut disposer des éléments suivants :

  • un serveur Web Apache/PHP/MySQL de développement fonctionnel, par exemple Wampserver
  • une installation Drupal opérationnelle (version utilisée ici : drupal-6.15)
  • le module Drush (version utilisée ici : drush-All-Versions-2.1)
  • les outils de ligne de commande GNUWin32 suivants :
    • Wget (version utilisée ici : wget-1.11.4-1-setup.exe)
      Wget permet d'effectuer des téléchargements en ligne de commande
    • Gzip (version utilisée ici : gzip-1.3.12-1-setup.exe)
      Gzip permet de décompresser les fichiers *.gzip (les paquetages Drupal)
    • BSDtar (version utilisée ici : libarchive-2.4.12-1-setup.exe)
      BSDtar est livré avec d'autres utilitaires d'archivage dans libarchive, il permet de désarchiver les fichiers *.tar.

Attention. Il ne faut pas utiliser l'utilitaire Tar de GNUWin32, mais bien BSDTar. Tar est bogué sur la gestion des chemins de Windows, il est donc à éviter.

Installation des utilitaires GNUWin32

Les utilitaires GNUWin32 se téléchargent et s'installent de façon tout à fait classique sur Windows : par simple double-clic sur les programmes d'installation téléchargés.

Adaptation de BSDTar

La version pour Windows du programme Tar étant boguée, on utilise donc BSDTar qui fonctionne exactement comme Tar. Toutefois, l'installation standard ne convient pas à Drush qui s'attend à trouver un exécutable « tar.exe » et pas « bsdtar.exe  » :

  1. Affichez le contenu du dossier d'installation de GnuWin32. Par exemple C:\Program Files\GnuWin32
  2. Ouvrez le sous-dossier C:\Program Files\GnuWin32\bin qui contient tous les exécutables de GnuWin32.
  3. Dans ce dossier, vous devez trouvez un fichier bsdtar.exe.
  4. Copiez bsdtar.exe, et renommez la copie tar.exe. La copie doit se trouver dans le répertoire C:\Program Files\GnuWin32\bin
  5. Vous disposez maintenant d'un Tar opérationnel

Installation de Drush

Contrairement aux autres modules, Drush n'a pas besoin d'être installé dans un des répertoires classiques pour les modules (comme site/all/modules ou sites/default/module). C'est un utilitaire de commande qui peut être installé en dehors de l'arborescence de Drupal, cela permet de l'utiliser pour toutes les installations de Drupal.

  1. On décompresse, puis on désarchive Drush
  2. On copie le répertoire drush\ à la racine de C:\ (ou tout autre répertoire à votre convenance).

Mise à jour de la variable d'environnement PATH

Une fois installés, le chemin des exécutables doivent être enregistrés dans la variable d'environnement PATH pour qu'ils soient utilisables en ligne de commande depuis n'importe quel point de l'arborescence des fichiers.

Il faut donc rajouter les chemins de tous les programme que nous venons d'installer :

  • Les utilitaires de GnuWin32 sont tous rassemblés dans C:\Program Files\GnuWin32\bin ;
  • Le script d'exécution de Drush, drush.bat, se trouve dans C:\drush.
  • PHP CLI (Command Line Interface) permet d'utiliser PHP en ligne de commande. Pour une installation standard de Wampserver, le chemin ressemble à celui-ci : C:\wamp\bin\php\php5.2.9-2. Il faut l'adapter à votre situation
  • Les fichiers exécutables de MySQL (par exemple, mysqldump.exe). Pour une installation standard de Wampserver, le chemin ressemble à celui-ci C:\wamp\bin\mysql\mysql5.1.33\bin.

Nous allons donc maintenant modifier la variable PATH :

  1. Ouvrez la fenêtre du Panneau de configuration en faisant Démarrer > Panneau de configuration.
  2. Double-cliquez ensuite sur l'icone Système.
  3. Affichez ensuite le panneau des paramètres avancés :
    1. sous Windows XP, il suffit de cliquer sur l'onglet Avancé
    2. sous Windows Vista, dans les tâches, il faut cliquer sur Paramètres système avancés.
  4. Dans le panneau des paramètres avancés, cliquez sur le bouton Variables d'environnement.
  5. Dans la rubrique Variables systèmes, sélectionnez la variable Path et cliquez sur le bouton Modifier.
  6. Ajoutez vos chemins d'exécutables dans le champ Valeur de la variable, à la suite de ceux qui s'y trouve déjà.
    Quatres chemins doivent être indiqués : PHP, MySQL, Drush, GnuWin32. Les chemins doivent être séparés par des point-virgules : ...;C:\wamp\bin\php\php5.2.9-2;C:\wamp\bin\mysql\mysql5.1.33\bin;C:\drush;C:\Program Files\GnuWin32\bin.
  7. Cliquez sur OK pour valider le panneau et tous ceux qui seraient ouverts.

L'installation est terminée.

Astuce. Pour pouvoir utiliser Drush, il faudra refermer toutes les fenêtres d'Invite de commande déjà ouverte, ainsi que celles de l'Explorateur de fichiers. En effet, ces programmes chargent les variables d'environnement lorsqu'il démarrent. Il faut donc les relancer pour qu'il prennent en compte les chemins de nos nouveaux exécutables.

Utilisation de Drush

Le liste des commandes de Drush sont disponibles dans la documentation officielle de Drush.

Fonctionnement de Drush

Drush peut travailler sur n'importe quelle installation de Drupal du système. Il identifie l'installation courante au répertoire courant. On aura donc soin de se placer dans le répertoire de l'installation Drupal visée avant de lancer une commande Drush. Pour cela, on utilisera la commande CD (Change Directory). Par exemple :

cd C:\wamp\www\drupal

Commandes Drush usuelles

En voici quelques unes :

  • Téléchargement d'un module :
    drush download admin_menu
    drush dl admin_menu
  • Téléchargement de plusieurs modules
    drush download wysiwyg imce imce_wysiwyg
    drush dl wysiwyg imce imce_wysiwyg
  • Téléchargement et installation dans un répertoire alternatif
    drush dl openid_provider --destination=sites/sous-site.example.com/modules
  • Activation de modules téléchargés
    drush enable wysiwyg imce imce_wysiwyg
    drush en wysiwyg imce imce_wysiwyg
  • Désactivation de modules

    drush disable wysiwyg imce imce_wysiwyg
    drush dis wysiwyg imce imce_wysiwyg
  • Désinstallation de modules

    drush uninstall wysiwyg imce imce_wysiwyg

  • Effacer tous les caches (Clear Cache)

    drush cc

  • Lancer les traitements Cron

    drush cron

  • Exporter la base de données avec Mysqldump
    drush sql dump --result-file=../drupal-db_20091105.sql

  • Pour obtenir de l'aide :
    • liste de toutes les commandes
      drush help

    • détails sur une commande particulière (ici sql dump)
      drush help sql dump

Bien d'autres commandes sont fournies par Drush. L'ajout de modules annexes permet encore d'étoffer les possibilités, voir la liste des modules complémentaires de Drush.

Note sur l'installation de Drush Make

Cette note porte sur la résolution des problèmes d'installation de Drush Make 6.x-2.0-beta8 du 30 juin 2010 sous Windows. Il est possible que ces problèmes soient résolus pour les versions ultérieures.

Conçu pour les environnement Unix, Drush Make ne fonctionne pas correctement sous Windows, on va devoir modifier manuellement le fichier [drush_make]/drush_make.download.inc de Drush Make.

Drush Make ne parvient pas à détecter une des options utilisées par le programme bsdtar utiliser sous Windows, on va donc lui indiquer manuellement en modifiant le fichier au niveau des ligne 163. On commente la ligne :

      //$strip_option = drush_get_option('strip-option', FALSE);

Et on ajoute en dessous, la ligne :

      $strip_option = 'component'; 

Plus bas, vers la ligne 199, on commente la ligne suivante :

//drush_shell_exec("gzip --list %s | awk '{print $4;}'", $this->filename);

... et on la remplace par sa copie légèrement modifiée :

drush_shell_exec("gzip --list %s | awk \"{print $4;}\"", $this->filename);

On a remplacer les guillemets simples (qui plantent sous Windows) par des guillemets doubles qui passent correctement.

En fait, la solution la plus simple est d'abandonner l'utilisation des outils GNU Win32 qui s'avèrent obsolètes. Il est préférable d'installer Cygwin (émulateur Linux pour Windows) qui, lui, propose un jeu d'utilitaires complet et ceux-ci dans des versions récentes. De plus, l'installation est simple et rapide. Il est important de noter que le but n'est pas d'utiliser Cygwin lui-même, mais plus simplement d'utiliser les utilitaires qu'il fournit depuis la ligne de commande de Windows (bsdtar, man, grep, unzip, etc.)

Annexes

Wget et les proxy

Si votre connexion Internet transite par un proxy, vous devez en indiquer les paramètres à Wget.

Le moyen le plus simple est de créer un nouvelle variable d'environnement http_proxy contenant les paramètres de proxy en respectant la syntaxe usuelle des URL :

http://proxy.example.com:9999/

ou s'il y a un mot de passe :

http://username:password\@proxy.example.com:9999/