Submitted by juliendubreuil on
Créer un site Drupal ca peut aller vite, mais à la longue c'est toujours la même chose. On se connecte sur Drupal.org pour télécharger les sources de Drupal et les modules un par un, ce qui prend un temps fou. On peut encore se créer une installation toute prête mais encore faut-il maintenir à jour les modules.
Il existe une autre solution, utiliser Drush. Ce n'est pas une révolution, car cela fait maintenant un petit moment déjà que Drush est disponible mais j'avoue n'avoir jamais eu le temps de m'y plonger.
Drush n'est pas un module pour Drupal, c'est un outil à installer sur votre serveur qui va vous permettre d'administrer vos sites en ligne de commandes.
Parmi les possibilités qu'offre Drush vous allez pouvoir via une simple ligne de commande installer Drupal, activer ou désactiver des modules ou encore télécharger des thèmes.
Depuis quelques temps je l'utilise professionnellement chez mon client, et c'est vraiment un gain de temps. J'ai donc pris un peu de temps chez moi pour comprendre sont fonctionnement.
Pour la suite de la présentation de Drush je vous montrerai comment l'installer sous linux (ubuntu pour l'utilisation de sudo en natif). J'ai auparavant essayé de l'installer sous Windows mais en vain.
Pré-requis
Comme je viens de l'évoquer, être sous Linux avec apache2, et php 5.2 d'installés.
Pour fonctionner Drush a besoin de la librairie CLI de php (CLI pour interface de ligne de commande en français).
Vous pouvez installer ce paquet via cette commande :
$ sudo apt-get install php5-cli
Drupal (et donc drush) est relativement gourmand en mémoire, il est donc conseillé de modifier tout de suite la limite mémoire de php5-cli, ce qui évitera de rencontrer une erreur à l'installation de modules.
Ouvrir le fichier /etc/php5/cli/php.ini
et modifier la valeur de memory_limit
. Pour un site qui utilisera peu de modules, il est conseillé de placer cette valeur à 128M. Autrement, fixer la valeur à 256M devrait convenir à la majorité des cas. Si la mémoire est insuffisante, il vous sera alors de retourner dans le fichier pour l'ajuster à vos besoins.
Petite astuce pour trouver rapidement la variable memory_limit: après avoir ouvert le fichier php.ini, taper /memory_limit
puis recherchera la chaine de caractère memory_limit.
$ sudo vi /etc/php5/cli/php.ini
## fichier php.ini
memory_limit = 256M ; Maximum amount of memory a script may consume (32MB)
Installation
Téléchargez Drush et dézippez le à l'endroit ou vous voulez. Pour ma part, j'ai choisi de le placer dans le répertoire /opt qui est utilisé pour les applications supplémentaires au système. Ainsi, pour moi, /path
équivaut à /opt
.
Placez vous dans le répertoire de votre choix
$ cd /path
Téléchargez drush
$ sudo wget http://ftp.drupal.org/files/projects/drush-All-Versions-2.1.tar.gz
Décompressez l'archive
$ sudo tar -xzf drush-All-Versions-2.1.tar.gz
Rendons maintenant le fichier exécutable pour tout le monde
$ sudo chmod a+x /path/drush/drush
Maintenant nous allons créer un lien symbolique vers drush.
$ sudo ln -s /path/drush/drush /usr/bin/drush
img : commande drush install
Drush est maintenant installé et prêt à l'emploi. Pour l'essayer, tapez simplement drush et vous devriez voir la liste des commandes drush disponibles.
$ drush
Utiliser Drush
Placez vous dans le répertoire où sont vos sites par exemple /var/www.
Nous allons maintenant installer Drupal avec la commande Drush download ou dl
$ drush dl drupal
Drupal a été téléchargé et déployé à l'endroit où vous êtes.
Placez vous dans votre installation de Drupal pour copier le fichier settings.php.
$ cp sites/default/default.settings.php sites/default/settings.php
$ chmod 666 settings.php
Il ne vous reste plus qu'à effectuer votre installation.
Une fois celle-ci terminée, rendez-vous dans le répertoire sites/all dans lequel nous allons déployer des modules et installer un nouveau thème. Pas besoin de créer les répertoires modules ou thèmes, drush va le faire pour vous.
Il est facultatif de se positionner dans le répertoire sites/all pour y installer un module ou un thème. Par défaut, les modules et thèmes seront téléchargés et installés dans le répertoire sites/all. Si vous voulez l'installer ailleurs (dans un sous-site ou dans le répertoire default), il vous suffira alors de vous y positionner avant de lancer la commande drush (ex: sites/default).
$ drush dl cck views devel
Nous venons de télécharger cck, views et le module devel. Pour vérifier vous pouvez aller sur l'administration de vos modules.
Cela marche aussi pour les thèmes
$ drush dl basic
Par défaut un module téléchargé n'est pas activé alors voici comment faire
$ drush enable views
Vous trouverez la liste complète des commandes de drush sur la page de documentation de drush ou -pour rappel- en tapant $ drush
dans la ligne de commande.
Conclusion
Drush est un vrai gain de temps pour réaliser vos sites, plus de connexion sur drupal.org, plus de recherche dans la liste des modules. En contrepartie il vous faut connaître le nom des modules que vous voulez installer.
Je vous conseille vivement d'installer Drush et de jouer avec.
Remarque GoZ: Le seul inconvénient à mon goût est le manque de visibilité lors de l'affichage de la liste des modules lorsque le site dispose de nombreux modules. Ceci oblige à jeter un œil à la page de gestion de modules lorsque l'on veut installer un module inconnu afin de voir du premier coup d'œil toutes les dépendances, la description, les modules installés etc.
Problèmes potentiels
- Droits d'accès:
Could not login with user ID #<em>0</em>.
Si jamais vous avez cette erreur, c'est que votre site n'est pas accessible publiquement et donc qu'il est impératif d'être authentifié pour y accéder. Il vous faut donc préciser un utilisateur à utiliser pour se connecter.
drush -u 1 commandeDrushAExecuter
Pour éviter de devoir retaper continuellementdrush -u 1
pour chaque commande, il est possible de créer un alias (dans~/.bashrc
) par exemple :
alias drush1='drush -u 1'
Il est possible d'utiliser directement les modifications du fichier .bashrc sans devoir se relogguer en tapant la commande :
source ~/.bashrc
Source :
Projet drush
Autres ressources :
module Drupal : Drush : part 1 : comment l'installer et l'utiliser sur biboo.net
Commentaires
Salut, J'ai relu la page de
Permalien Soumis par GoZ le 5 Janvier, 2010 - 10:24
Salut,
J'ai relu la page de doc (ça m'a pris comme ça) et j'ai une remarque.
Je pense qu'il est inutile et déconseillé de mettre dans la doc de passer par sudo pour utiliser drush.
J'explique :
Les personnes qui vont utiliser drush n'ont pas forcément les droits d'utilisation de sudo (accès root quand même...). Certe cette commande est justifiée pour l'installation de drush (même s'il est possible de s'en passer en l'installant ailleurs et en passant par une configuration de .bashrc et alias plutôt que de faire un lien) et obligatoire pour l'installation de php5-cli, mais intuile pour l'utilisation de drush.
Les droits concernant l'utilisation de drush seront ensuite limités par les droits de l'utilisateurs sur les fichiers du site drupal.
Même raisonnement pour la manipulation de fichiers drupal, il est conseillé de le faire via un utilisateur qui à les droits apache plutôt qu'avec les accès root.
Autre sujet, il serait bon je pense de conseiller de modifier le php.ini de php5-cli afin d'augmenter la limite mémoire, très vite insuffisante. Cela permettra aux néophytes de ne pas être confronté au problème de limitation de mémoire.
Je l'utilise principalement
Permalien Soumis par Crayulayon le 5 Janvier, 2010 - 12:28
Je l'utilise principalement pour mettre à jour mes modules. Et comme j'utilise une installation mutualisée je procède ainsi :
$ drush update --uri="http://www.monsiteweb.com"
De même pour activer un module
$ drush enable monmodule --uri="http://www.monsiteweb.com"
Et pour mettre à jour Drupal, presque pas besoin de drush
drush dl drupal
rm -rf drupal-6./robots.txt
rm -rf drupal-6./.htaccess
rm -rf drupal-6./sites
cp -r drupal-6./* ./
rm -rf drupal-6.*
Je travaille également sur
Permalien Soumis par GoZ le 5 Janvier, 2010 - 14:22
Je travaille également sur plusieurs sites, mais devoir toujours taper --uri="http://monsite.com" est vite pénible et une perte de temps.
J'utilise 2 solutions:
- Soit je travaille directement dans le répertoire du site auquel je veux ajouter les modifications, dans ce cas là drush installe les modules au bon endroit
- Soit je paramètre des alias pour les sites en question.
alias dMonsite='drush --uri="http://monsite.com"'