Vous êtes ici

Installer un module simple, méthode "à la main"

Vous avez 30 secondes ?
S'abonner au flux d'actualités
Rubrique: 
Pratique
Difficultée: 
Facile
Nous avons vu comment utiliser l'interface Drupal pour la phase de déploiement du module, à savoir le téléchargement et la mise en place des fichiers constituant le module dans le bon répertoire de l'installation Drupal.
Nous avons également vu que cette méthode graphique place les fichiers dans le répertoire modules de votre installation Drupal. Or, nous savons qu'il est possible de restreindre la visibilité d'un module à un seul sous-site de notre installation multi-site. Vous vous rappelez ce chapitre sur l'installation ? Il suffit de placer ses modules dans le répertoire sites/<mon-site.fr>/modules.
 
C'est ce que la méthode "à la main" va vous permettre : au lieu d'utiliser l'interface du site pour télécharger notre module, nous allons le placer à la main dans le bon répertoire de notre installation Drupal.
 
Voyons un exemple avec le module Global Redirect.
 
Nous l'avions vu dans le tutoriel sur la découverte de Drupal, il est possible d'activer une fonction de réécriture d'URL dite "URL propre". En plus de cela, il est possible également d'utiliser un alias d'URL. Cet article par exemple est disponible aux URLs suivantes :
Du point de vue des moteurs de recherche -comme Google-, c'est autant de pages différentes qui se copient les unes les autres. Or, ceci est considéré par Google comme une pratique de triche dans votre référencement et votre site risque d'être pénalisé. Le module Global Redirect participe au SEO de votre site : l'art d'être bien classé dans les résultats des moteurs de recherche. Pour cela, Global Redirect met en place tout un ensemble de redirections afin de s'assurer que toutes les URLs d'une même page soit redirigée vers une URL unique.

Etapes d'installation manuelle

  • Se rendre sur la page du module : vous savez déjà la retrouver grâce au tuto précédent : Où trouver des modules Drupal ?
  • Télécharger la dernière version 8.x du module. A ce stade, vous devriez également savoir comment la choisir. Vous pouvez prendre le .zip ou le .tar.gz à votre convenance.
  • Se rendre dans le dossier sites de votre installation Drupal. Si vous suivez ce cours depuis le début, vous devriez pouvoir le retrouver dans C:/wamp/www/TutoDrupalAddict
  • Se rendre dans le dossier des modules de votre site. Si vous avez suivi l'article , vous devriez déjà savoir qu'il s'agit de :
    • /modules : pour utiliser votre module classiquement dans l'ensemble des sites de votre installation
    • /sites/all/modules : idem, mais ce dossier est plutôt très "Drupal 7" dans la manière de faire.
    • /sites/mon-site.fr/modules : pour un module n'étant utilisable que par le site mon-site.fr.
Les dossiers /sites/all/modules, /sites/mon-site.fr/modules et autres n'existent pas par défaut afin de ne pas perturber les utilisateurs novices. C'est à vous de les créer si vous en avez besoin (et donc que vous savez ce que vous faites !)
  • Décompresser l'archive téléchargée dans ce dossier. Notez que n'importe quel bon logiciel d'archivage peut le faire. Personnellement j'utilise TUGZip Archiver.
Le module, placé dans son répertoire d'installation.
  • Se rendre sur la page de gestion des modules de votre site : vous devriez désormais voir le module Global Redirect.
Nous venons en effet de faire à la main ce que fait l'interface Drupal !
 
  • Activer le module : vous pouvez à présent activer le module, comme nous l'avions fait jusqu'à présent dans la méthode précédente.

Avantages et inconvénients de la méthode

Avantages :
  • Permet de contrôler où s'installe le module, et donc de ne le rendre accessible qu'à un seul domaine de notre installation Drupal.
  • Cette méthode est nécessaire pour placer les librairies externes en cas de dépendance du module.
 
Inconvénients :
  • Plus complexe. Nécessite plus de manipulations et de téléchargements.
  • Nécessite un client FTP si le site est en ligne.
  • Risque d'erreur plus important.
Notation: 
Average: 4.5 (2 votes)
Vous avez aimé: 

Commentaires

Portrait de DambyGreen

Salut a tous, En suivant les indications de Dominique CLAUSE dans le tuto http://drupal-addict.com/installer-et-activer-un-module-simple-methode-g..., je ne parviens pas a installer un module. Cela en indiquant URL de l'archive et aussi, comme alternative son path(Chemin dans le systeme de fichiers). Apres avoir renseignee URL ou PATH et cliquer sur INSTALL, redirection vers ce formulaire http://localhost/TutoDrupalAddict/core/authorize.php qui me demande de fournir les infos de connexion a mon serveur dont CONNECTION METHOD(ici seulement FTP), USERNAME, PASSWORD, ADVANCED SETTINGS(host &amp; port). Et enfin, le bouton CONTINUE que je clique, pour voir safficher cela Warning: ftp_login(): Login incorrect. in Drupal\Core\FileTransfer\FTPExtension-&gt;connect() (line 24 of core/lib/Drupal/Core/FileTransfer/FTPExtension.php). Failed to connect to the server. The server reports the following message: Cannot log in to FTP server. Check username and password For more help installing or updating code on your server, see the handbook. Suis bloque a ce niveau, etant novice et sachant quoi faire, je demande laide de tous. Merci tout le monde!!!!
This post is useful!
This post is useless!
Portrait de Jeremy

Bonjour, j'ai bien suivi la procédure d'installation, et je peux voir sur la page d'accueil que mon module globalRedirect a bien été installé. cependant, lorsque je souhaite changer de page, j'ai maintenant ce message :"Le site Web a rencontré une erreur inattendue. Veuillez essayer de nouveau plus tard." qui revient à chaque fois. j'ai essayé de supprimer le dossier ( ne pouvant plus accéder aux configurations des modules ) mais cela me renvoi une grosse erreur php vis-à-vis du kernel. cela dit, merci quand même pour le tuto :) Bien cordialement.
This post is useful!
This post is useless!

Bonjour,
Juste avant de répondre à votre question, sachez que les fonctionnalités de Global Redirect, sous Drupal 8, est désormais intégré dans le module plus large Redirect que je vous conseille.
 
Deuxième point: tentez de remettre le module, puis visitez la page <votresite.com>/update.php
Si cela ne fonctionne pas, visitez <votresite.com>/core/rebuild.php 
SI cela fonctionne, supprimez ensuite le module proprement
 
Si cela ne fonctionne toujours pas... Hum.. C'est que y'a un soucis avec Global Redirect. Pour le supprimer " à l'arrache " :
- supprimer le module global_redirect
- visitez l'URL: <votresite.com>/core/rebuild.php 
Cela devrait résoudre le soucis. Il restera toutefois des relicats du module, comme une table en BDD etc.. d'où le terme de " à l'arrache ".
This post is useful!
This post is useless!

Bonjour,
Je n'en suis pas à mon premier site Drupal, mais je reste tout de même novice, mais grâce à vous j'ai pu mettre un site avec un theming de mon cru en ligne, sans trop de difficultés! Merci encore.
Au sujet des modules, je ne sais pas si Swiftmailer est un module simple qui s'applique à cette rubrique mais auriez-vous une astuce, j'y suis depuis 1 semaine, sans pouvoir l'installer avec ou sans composer sur un core 8.3.2, le module mailsystem est activé, mais swiftmailer ne s'installe pas si ses librairies ne se téléchargent pas. Je suis allée sur le site swiftmailer.org, j'essaie de télécharger la librairie depuis Github comme c'est indiqué mais je ne sais pas quoi en faire ni ou la mettre. Mon serveur d'hébergement ne me permet pas l'utilisation de composer, et en developpement local, composer ne m'installe aucune librairie. Composer est installé sans le dossier Devtools de Acquia sur c: et mon site de développement tourne sur un lecteur h:. Je dois sans doute oublier quelque chose mais quoi, je ne comprends pas où se situe ce problème. Un conseil d'expert serait le bienvenu. Merci par avance et bon courage aux autres débutants, on y arrive avec de la persévérance, même si parfois c'est un peu décourageant, heureusement qu'il y a Dominique Clause pour nous encourager! Merci encore. Flo
This post is useful!
This post is useless!

Bonjour,
 
A ma connaissance, ce n'est malheureusement pas possible d'installer un module possédant des dépendances externes, le tout sans Composer. Composer est une partie désormais quasi-incontournable du développement PHP moderne et les hébergeurs mutus sont souvent à la traine par rapport à ça.
J'ai une mauvaise nouvelle à vous annoncer: ça va devenir pire en pire, Composer (est déjà) va devenir une obligation pour gérer ses sites Drupal.
 
La bonne nouvelle c'est que vous pouvez vous créer un workflow (un processus dans la gestion de votre site) dans lequel vous utilisez Composer en local, et pousserez ensuite les changements (le module et ses dépendances) sur votre plateforme (j''imagine que vous pousserez via FTP puisque si vous n'avez pas d'accès en commande, vous ne pourrez pas non plus récupérer votre code avec GIT).
 
En d'autre terme:
- En local: dans le dossier principal de Drupal (celui contenant aussi /core /modules, etc..), lancez la commande:
composer require drupal/swiftmailer
- Passez tout ça en prod selon votre méthode préférez: GIT, FTP, pigeon voyageur, ce que vous voulez ! Le module s'est normalement ajouté dans /modules/contrib/swiftmailer et ses dépendances dans /vendor
 
Quoi qu'il en soit, vous allez être obligée de passer par du composer à un moment où à un autre, au moins en local.
 
Cordialement,
Dom.
 
This post is useful!
This post is useless!

Merci beaucoup Dominique pour ces infos qui pour moi ne sont pas super réjouissantes. J'ai quand même pu finalement installer ce satané Swiftmailer en local avec Composer, puis le monter sur le serveur d'hébergement mutualisé qui ne me permet pas l'utilisation de lignes de commandes.
Le blocage venait du fait qu'en local, je passe par Acquia qui est installé avec drush et composer sur C: et la racine de mon site sous D8 est sur un autre disque externe. Composer ne savait jamais trouver swiftmailer sur C. Donc, j'ai essayé au feeling, n'ayant pas de grandes notions de tout cela, (mes connaissances étant très succintes et surtout très obsolètes), j'ai déposé un composer.phar à la racine de mon site que j'ai appelé avec drush et là comme par miracle tout s'est développé! Il a quand même fallu changer également la version PHP utilisée pour que la librairie et le module s'installe correctement et mettre les librairies requises par le module dans le dossiers vendor du site. Et tout s'est mis à fonctionner, le module a pu être installé et activé! Quelle aventure, mais quelle joie aussi quand on arrive à la solution! Maintenant je galère pour trouver la bonne config pour envoyer mes emails en HTML depuis mon serveur... Une nouvelle aventure commence ;o)
En tout cas merci encore d'être là, ça donne du courage!
Flo
This post is useful!
This post is useless!