Drupal en local : de quoi a-t-on besoin ?

Vous êtes ici pour suivre une série de tutoriaux Drupal pour débutants. Si vous cherchiez des articles plus poussés et/ou généraux, consultez le blog.
Dans cet article

Ça y est, c'est parti, vous vous lancez dans la création de votre site web avec Drupal. A ce stade, vous savez plus ou moins ce que vous voulez faire. Peut-être même avez-vous une maquette de votre site. Vous trépigniez d'impatience à l'idée de vous lancer: du concret que diable ! Voici avant de commencer (dans les articles suivants) une liste des prérequis à Drupal.

En tant qu'utilisateur de sites web, vous savez certainement naviguer sur internet ! Mais de l'autre côté du miroir, vous allez voir qu'un site web ne fonctionne pas comme ça, tout seul par magie. Un certain nombre d'outils sont nécessaires pour démarrer.

Vous pouvez trouver tous les prérequis pour l'utilisation de Drupal ici: https://drupal.org/requirements

Ne vous inquiétez pas si vous ne comprenez pas tout, nous allons les passer en revue ensemble ci-dessous. Sachez seulement que votre progression dans le monde Drupal passera souvent par de la lecture de documentation, majoritairement en anglais.

Un navigateur

Puisqu'il s'agit de créer un site web, nous allons avoir besoin d'accéder à des pages web. Même si, dans un premier temps, celles-ci seront physiquement enregistrées sur votre ordinateur, ce sont tout de même de vraies pages, avec de l'HTML, du CSS, du JavaScript, bref autant de langages que -rassurez-vous- nous n'aurons pas à apprendre à ce stade, Drupal vous l'a promis ! Pour pouvoir afficher ce code en une jolie page web, il vous faudra donc un navigateur, le même que celui que vous utilisez pour lire cet article.

Pour ma part, je vous conseillerais Chrome, mais vous pouvez utiliser celui que vous voulez (Firefox, Safari, Opera ou autre… même Edge ou Internet Explorer !).

Navigateur web :

Le navigateur est le logiciel permettant de consulter les pages du World Wide Web. C'est grâce à lui que se fait votre visite du web au quotidien. Il interprète notamment le HTML / CSS et Javascript renvoyé par le serveur lors de la demande de consultation d'une page web.

En savoir plus sur la programmation HTML, sur le cours d'OpenClassrooms.

Un serveur web

Lorsque vous consultez un site web sur internet, le code informatique qui décrit la page est stocké quelque part dans le monde, sur un ordinateur appelé Serveur HTTP ou Serveur Web. C'est un ordinateur quasi "classique", capable de recevoir des requêtes et de renvoyer des pages web en retour.

Je ne vous ferais pas un cours complet sur l'architecture web, mais rappelez-vous juste que lorsque vous tapez une adresse dans votre navigateur: http://votre-site.com, votre navigateur va envoyer une requête, c'est à dire une demande d'accès à la page en question. Cette demande est routée (acheminée, transmise), par divers mécanismes (inutile de rentrer dans le détail ici), jusque vers le serveur sur lequel sont physiquement stockés le(s) fichier(s) décrivant cette page. Un logiciel - Apache ou Nginx le plus souvent - est capable de recevoir cette requête et de répondre en renvoyant le code de la page voulue. Ce code est alors reçu par le navigateur et affiché à l'écran.

Nous avons donc besoin d'un logiciel qui soit capable de recevoir les requêtes de notre navigateur et de renvoyer les pages de notre site qui, pour l'instant, seront stockées sur notre ordinateur. Ce logiciel peut être Apache ou encore Nginx ou autres, il en existe plusieurs, évidement !

Serveur WEB :

Un serveur web désigne un ordinateur sur lequel est installé un logiciel serveur HTTP. Par extension, serveur web désigne également ledit logiciel. C'est sur ce serveur que sont stockés les fichiers sources (le code informatique) constituant un site web. Le rôle du serveur web est donc de recevoir les requêtes des navigateurs souhaitant se connecter aux sites qu'il stocke et de renvoyer les pages correspondant aux requêtes.

Drupal est capable de fonctionner sur différents types de serveur. Nous utiliserons dans la suite de ces articles un serveur de type Apache.

Un système de gestion de base de données

Nous l'avons vu dans le chapitre "théorie", Drupal est un CMS permettant la gestion d'un contenu varié. Dans Drupal, ce contenu est stocké dans une base de données, sorte de gigantesque placard numérique où les informations sont stockées, ordonnées, classées, rangées pour être retrouvées de la manière la plus efficace possible.

Système de gestion de base de donnée :

Un système de gestion de base de données est un logiciel effectuant le travail de rangement et récupération des données dans une sorte de gigantesque placard numérique. L'un des plus courant est appelé MySQL. L'informaticien communique avec ce système au moyen d'un langage appelé SQL.

En savoir plus sur les bases de données SQL : le cours d'OpenClassrooms.

Drupal est capable d'utiliser plusieurs types de bases de données. Nous utiliserons dans la suite de ces articles la plus courante d'entre elle: MySQL.

Un interpréteur PHP

Drupal étant un CMS, il crée par définition des sites web dynamiques, c'est à dire que des informations sont régénérées, gérées et traitées à chaque visite d'un internaute. Par exemple :

  • les droits de l'utilisateur sont vérifiés
  • la base de donnée du site est interrogée et le contenu demandé est récupéré
  • la mise en forme graphique est générée
  • ...

Vous pouvez en outre avoir un forum, un chat, des commentaires, etc... Bref, autant de choses qui nécessitent l'utilisation du langage dynamique qu'est le PHP.

Interpréteur PHP

Il s'agit d'un plug-in (extension) pour Apache lui permettant d'interpréter (comprendre et fabriquer) des pages web dynamiques écrites en PHP. Le résultat généré est en HTML, un code informatique qui sera renvoyé par Apache au navigateur pour affichage.

En savoir plus sur le PHP, sur le cours d'OpenClassrooms.

Drupal fonctionne sur les versions les plus récentes de PHP. Dans la suite des articles nous utiliserons la version PHP7 la plus récente du moment.

Solution tout en un !

Vous avez certainement remarqué que je n'ai donné aucun lien de téléchargement pour les outils nécessaires au bon fonctionnement de notre site. C'est parce que nous utiliserons des logiciels "tout-en-un" pour installer l'ensemble de ces technologies.

Stack AMP

On appelle stack AMP, l'ensemble de la couche composée de Apache, MySQL et PHP.

Suivant votre version de système d'exploitation, on parlera généralement de WAMP, LAMP et MAMP :

WAMP : Windows, Apache, MySQL, PHP. Il s'agit de la version pour Windows de l'ensemble des outils.
LAMP : Linux, Apache, MySQL, PHP. Comme son nom l'indique, pour Linux.
MAMP : Mac, Apache, MySQL, PHP. Allez, perspicaces comme vous êtes, vous l'aurez deviné !

Une fois WAMP, LAMP ou MAMP correctement installé et configurée selon votre système d'exploitation, vous obtiendrez deux choses qui nous intéresserons :

- un dossier représentant la racine de votre serveur web. Ce dossier peut-être C:/wamp/www sous windows, /var/vhosts sous linux, ou autre selon votre installation. Peu importe, c'est dans ce dossier que nous mettrons nos projets Drupal par la suite. Rappelez-vous cependant que nous ne parlons pas ici de serveur web mais de serveur local. Autrement dit les sites que nous développerons seront accessibles localement et non via internet.
- une adresse locale: localhost ou 127.0.0.1 automatiquement redirigée vers votre serveur Apache local. Vous pourrez donc tester vos sites web présents dans www comme s'ils étaient sur le net via cette URL.

Acquia Desktop

Acquia, la société crée par le créateur de Drupal met à disposition gratuitement une solution de type stack AMP mais optimisée pour Drupal. Cette solution se nomme Acquia Dev Desktop. Elle contient de même un exécuteur PHP, un serveur Apache et MySQL. L'intérêt est que ce petit logiciel va également être capable de reconnaître vos sites Drupal et de gérer automatiquement une URLs locale pour chacun d'eux, sur un port dédié, permettant de coexister sans conflit avec d'autres types de serveurs.

Que choisir ?

Personnellement j'utilise au quotidien pour mon développement local Acquia Dev Desktop dont le paramétrage par défaut me semble plus adapté à Drupal. C'est aussi la solution que je recommande aux programmeurs débutants afin de n'avoir aucune autre technologie type Docker à apprendre.

Ajouter un commentaire

Votre nom sera affiché publiquement avec votre commentaire.
Votre email restera privé et n'est utilisé que pour vous notifier de l'approbation de ce commentaire.
Sur internet, vous pouvez être qui vous voulez. Soyez quelqu'un de bien :)