Drupal en ligne de commande : Drush installation

Drush 3.1 est sorti il y a quelques jours. Qu’est ce que Drush ?

Vous avez une idée ? Trouvez gratuitement des développeurs sur Codeur.com !

Recevez des devis (gratuit)

C’est DRUpal SHell, càd Drupal en ligne de commande.

Drupal is a registered trademark of Dries Buytaert

A part pour les fanas de la ligne de commande, quels avantages offrent Drush ?

Certaines tâches peuvent devenir rébarbatives en Drupal, car peu intéressantes, routinières et consommatrices de temps !

Les mises à jour en particulier, peuvent devenir pénibles si vous utilisez beaucoup de modules et si vous devez gérer de nombreux sites. Passer 10 à 30 minutes pour mettre à jour un site, si vous devez refaire cela plusieurs fois par mois, pour 10 ou 20 sites… Pénible, et quelle perte de temps !

Drush est là pour ce genre d’opération !

Drush vous fera gagner beaucoup de temps.

Vous aurez rapidement regagné les quelques heures passées à comprendre Drush et à automatiser vos scripts. 😉

  • Drush n’est pas un module Drupal. Il ne s’installe pas dans votre site Drupal mais sur votre serveur Linux.
  • Drush c’est un script en ligne de commande, càd que vous pouvez utiliser dans un terminal ou une session SSH (et pas depuis votre navigateur).
  • Il vous permet de passer des commandes simplement, un peu le style de « apt-get » en Debian 🙂
  • Les commandes sont variées :
    • download de modules, de thèmes, et même de Drupal lui-même
    • mettre le site en « Hors ligne » ou le remettre « en ligne »
    • mise à jour de Drupal, modules, etc
    • activation ou désactivation de modules, etc
    • faire tourner la tâche « cron »
  • comme tous les scripts, il est facile d’automatiser certaines opérations, soit pour les faire régulièrement, soit pour traiter un grand nombre de sites… et c’est là que vous allez gagner beaucoup de temps !

Je suppose que vous avez déjà un site Drupal vous permettant quelques tests. Le classique serveur LAMP (Linux Apache MySQL et PHP).

Linux n’est pas obligatoire. Drush doit être utilisable dans pratiquement tous les Unix, BSD ou Mac OS X, en fait sur tout OS où Drupal est installable.

Installons et essayons Drush :

Allez en ligne de commande sur votre serveur, soit dans un terminal si vous avez accès localement à votre serveur.

Pour que Drush puisse passer des commandes à votre site, la librairie PHP « php5-cli » doit être installée.

Si ce n’est pas encore fait, la commande d’installation est :

sudo aptitude install php5-cli

Si votre distribution Linux n’utilise pas « sudo », passez d’abord en « root » avec « su – » 😉

Drupal est assez gourmand en mémoire. L’allocation de base pour « php5-cli » n’est pas suffisante.

Editer le fichier « /etc/php5/cli/php.ini » avec VI ou votre éditeur habituel.

sudo vi /etc/php5/cli/php.ini

Cherchez la ligne avec l’allocation mémoire : faites une recherche en  tapant « /memory_limit »

;;;;;;;;;;;;;;;;;;;
; Resource Limits ;
;;;;;;;;;;;;;;;;;;;
max_execution_time = 30     ; Maximum execution time of each script, in seconds
max_input_time = 60 ; Maximum amount of time each script may spend parsing request data
;max_input_nesting_level = 64 ; Maximum input variable nesting level
memory_limit = 32M      ; Maximum amount of memory a script may consume (32MB)

Augmentez cette limite à 128 MB minimum, ou même 256 MB si vous avez des sites utilisant beaucoup de modules.

Télécharger « drush » :

Je copie l’adresse de la dernière version de Drush depuis la page du projet Drush. Prenez la version stable, pas celle en développement.

$ cd /home/didier/download/drupal/
:/home/didier/download/drupal$ wget http://ftp.drupal.org/files/projects/drush-6.x-3.1.tar.gz
--2010-06-27 18:15:29--  http://ftp.drupal.org/files/projects/drush-6.x-3.1.tar.gz
Resolving ftp.drupal.org... 64.50.236.52, 64.50.233.100
Connecting to ftp.drupal.org|64.50.236.52|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 174203 (170K) [application/x-gzip]
Saving to: `drush-6.x-3.1.tar.gz'
100%[=======================================================================================================>]
174,203      288K/s   in 0.6s
2010-06-27 18:15:29 (288 KB/s) - `drush-6.x-3.1.tar.gz' saved [174203/174203]
 
et décompressé le.

Vous pouvez le mettre dans n’importe quel dossier. Je choisi de le mettre dans /opt.

$ cd /opt
:/opt$ sudo tar xvfz /home/didier/download/drupal/drush-6.x-3.1.tar.gz
drush/
drush/commands/
drush/commands/core/
drush/commands/core/drupal/
drush/commands/core/drupal/batch_6.inc
..
drush/commands/core/drupal/update_6.inc
drush/commands/core/drupal/update_7.inc
drush/commands/core/clear.cache.inc
...

Le script « drush » doit être exécutable :

sudo chmod a+x /opt/drush/drush

Pour ne pas devoir à chaque fois préciser le chemin (path) vers le script Drush, vous pouvez soit créer un alias, soit un lien symbolique.

Je choisi de mettre un lien symbolique dans /usr/bin :

sudo ln -s  /opt/drush/drush  /usr/bin/drush

Drush est prêt à être utilisé 😉

Essayons quelques commandes :

$ drush
Execute a drush command. Run `drush help [command]` to view command-specific help.
Examples:
drush dl cck zen                          Download CCK module and Zen theme.
drush --uri=http://example.com status     Show status command for the example.com multi-site.
drush help --pipe                         A space delimited list of commands
Options:
-r <path>, --root=<path>                  Drupal root directory to use (default: current directory)
-l <uri>, --uri=http://example.com        URI of the drupal site to use (only needed in multisite environments)
-v, --verbose                             Display extra information about the command.
-d, --debug                               Display even more information, including internal messages.
-q, --quiet                               Hide all output
...

Le dossier utilisé par Drush, est par défaut le dossier actuel.

Vous pouvez spécifier un dossier différent avec un paramètre (utile pour automatiser), mais pour un simple test, placer vous simplement dans le dossier « racine » de votre site Drupal.

J’ai un site de test, installé dans /home/didier/www/test6 :

$ cd /home/didier/www/test6/
:/home/didier/www/test6$ drush status
Drupal version         :  6.14
Default theme          :  garland
Administration theme   :  garland
PHP configuration      :  /etc/php5/cli/php.ini
Drush version          :  3.1
Drush configuration    :
Drupal root            :  /home/didier/www/test6
Aie … Drupal 6.14… Ce site n’est pas du tout à jour !
C’est un site de test oui… mais en cas de faille PHP, ça pourrait malgré tout permettre de corrompre le serveur ou la base de données !
A corriger au plus vite ! 😉
Ce sera l’objet de mon prochain billet. 🙂

Sources :

L'équipe de WebActus.net vous propose tous les jours des articles sur l'univers des startups, du e-commerce et du growth hacking.

Rejoignez la communauté Webactus

Recevez régulièrement les meilleures actus et ressources

Pas de spam, vous pouvez vous désabonner à tous moment.