Dans un précédent article je faisais un petit tour de base de Drush et des commandes utiles, nous allons maintenant aller un peu plus loin en configurant pleinement Drush sur notre système *nix.
Installation manuelle de la dernière version de Drush
Il est probable qu'un paquet drush existe pour votre système, mais si vous voulez profiter de la dernière version de cette application vous devez en passer par l'installation manuelle.
Il y a encore peu Drush était disponnible avec pear, et son installation était relativement simple, maintenant vous devrez utilser composer pour profiter de Drush, et la documentation officielle est un peu légère à ce sujet, pour une installation complète sous *nix (je vais prendre comme exemple une distribution qui utilise Yum), vous devez d'abord installer composer de préférence depuis votre répertoire utilisateur
cd
Installation de composer globalement sur votre système :
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Ajout du chemin du binaire Drush dans votre PATH
sed -i '1i export PATH="$HOME/.composer/vendor/bin:$PATH"' $HOME/.bashrc
source $HOME/.bashrc
Installation de la dernière version de Drush, mais avant, assurez-vous d'avoir git sur votre système :
yum install git
composer global require drush/drush:dev-master
Pour les mises à jour il suffira de faire
composer global update
Si tout c'est bien passé la commande drush est maintenant disponible sur votre environnement, si vous avez une erreur de type
c'est probablement que vous n'avez pas sourcé votre .bashrc !
Ajout des alias de Drush à votre système *nix
Pour cela nous allons simplement récupérer un fichier fourni avec Drush
cp $HOME/.composer/vendor/drush/drush/examples/example.bashrc $HOME/.drush_bashrc
Puis nous allons ajouter dans notre .bashrc ou .bash_profile
if [ -f ~/.drush_bashrc ] ; then
. ~/.drush_bashrc
fi
Enfin on source notre bash
source .bashrc
Nous avons maintenant pas mal d'alias sur notre système pour Drush, vous en avez la liste dans ce fichier .drush_bashrc, les plus utiles seront
dl = 'drush pm-download'
st = 'drush core-status'
dis = 'drush pm-disable'
en = 'drush pm-enable'
Ajout de la complétion pour Drush
Très pratique, la complétion sous *nix vous permet d'avoir la liste des programme ou commandes grace à la touche TAB, c'est comme pour la complétion des dossier ou noms de fichiers.
Vous devez d'abord vous assurez de bien avoir la complétion bash sur votre système :
yum install bash-completion
Vous pouvez ensuite faire un lien symbolique du fichier fourni par Drush
ln -s $HOME/.composer/vendor/drush/drush/drush.complete.sh /etc/bash_completion.d/drush.complete.sh
Et relancer votre bash (pour complete)
exec bash
Seulement pour une raison que j'ignore, il est probable que la prochaine fois que vous lancez un shell, la complétion Drush ne fonctionne plus et que vous ayez un message :
which: no drush in (/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin)
Pour résoudre ce problème, ajoutez un lien symbolique vers le binaire Drush, ici j'ai choisi /usr/local/bin mais vous pouvez le mettre dans l'un des autres répertoires
ln -s $(which drush) /usr/local/bin/drush
Pour tester commencer par taper une commande Drush la commande devrait se compléter :
drush pm
Utilisez TAB pour avoir la liste des commandes possibles (le premier TAB peut mettre un peu de temps...) ce qui vous donnera
drush pm
pm-disable pm-enable pm-info pm-list pm-releasenotes pmu pm-update pm-updatecode-postupdate pm-download pmi
Les alias de sites Drush pour un Drupal multisite ou un serveur avec plusieurs sites...
Un dernier point utile avec Drush sera la création d'alias, si vous créé un site en utilisant la gestion de répertoire de Drupal (sites/monsite) au lieu du default, ou que vous utilisez la gestion multiste cette fonctionnalité vous fera gagner du temps.
Vous aurez au préalable besoin de l'extesion php-posix sur votre système (php-process sous centos).
Vous pouvez créer un alias depuis Drush si vous êtes déjà dans un site
drush site-set @test
Ensuite vous pouvez lancer des commandes Drush pour ce site depuis n'importe où
drush @test status
Mais cet alias ne fonctionnera que sur la session en cours, pour avoir des alias qui durent vous devez copier le fichier drush dans votre environnement
cp $HOME/.composer/vendor/drush/drush/examples/example.aliases.drushrc.php $HOME/.drush/aliases.drushrc.php
Vous pouvez alors adapter les alias en fin de fichier, ce qui vous permettra d'exécuter une commande drush pour un site, même si vous n'ètes pas dans son répertoire, exemple du fichier aliases.drushrc.php
'www.url-de-mon-site.com',
'root' => '/chemin/vers/racine/drupal',
);
?>
Depuis n'importe où vous pouvez faire un
drush @test status