Comment configurer un serveur de test local ?

Vous lisez la version anglaise de ce contenu car il n’existe pas encore de traduction dans cette langue. Aidez-nous à traduire cet article !

Cet article explique comment configurer un serveur de test local simple sur votre machine, et les bases pour l'utiliser.

Prérequis : Vous devez au préalable savoir comment Internet fonctionne, et ce qu'est un serveur Web.
Objectif: Vous apprendrez à configurer un serveur de test local.

Fichiers locaux contre fichiers distants

Dans la plupart de la section apprentissage du site, nous vous disons simplement d'ouvrir vos exemples directement dans votre navigateur — vous pouvez le faire en double cliquant le fichier HTML, en déposant celui-ci dans la fenêtre de votre navigateur, ou en faisant Fichier > Ouvrir... et naviguer jusqu'au fichier HTML, etc... Il y a beaucoup de manières d'y arriver.

Vous savez que vous avez lancé l'exemple depuis un fichier local, lorsque l'URL commence par fichier://, suivie de son chemin d'accès sur votre disque dur interne. Par contre, si vous consultez un de nos exemples hébergés sur GitHub (ou un n'importe quel autre serveur distant), l'adresse web commencera par http:// ou https://, démontrant ainsi que le fichier a été servi via HTTP.

Le problème du test local

Certains exemples ne fontionneront pas si vous les ouvrez en tant que fichiers locaux. Cela peut être dû à plusieurs raisons, dont les plus courantes sont :

  • Ils comprennent les requêtes désynchronisées. Certains navigateurs (comme Chrome) ne pourront pas lire de requêtes asynchrones (voyez Récolter des données depuis le serveur ) si vous lancez simplement l'exemple comme un fichier local. Cela est dû à des restictions de sécurité (Pour en savoir plus, lisez Sécurité des sites Web).
  • Ils comprennent des languages spécifiques aux serveurs. Des languages serveur (comme PHP ou Python) nécessitent un serveur spécifique pour interpréter le code et donner des résutats.

Créer un serveur HTTP local simple

Pour contourner le problème le problème des requêtes asynchrones, nous devons tester de tels examples en les exécutant depuis un serveur local. Une des plus faciles manière de s'y prendre pour notre objectif  est d'utiliser le module SimpleHTTPServer de Python.

Pour le faire:

  1. Installer Python. Si vous utilisez GNU/Linux ou macOS, il devrait être déjà disponible sur votre système d'exploitation. Si vous êtes un utilisateur de Windows, vous pouvez obtenir un installeur depuis la page d'accueil de Python et suivre les instructions pour l'installer:

    • Allez à python.org
    • Sous Télécharger, cliquez le lien pour Python "3.xxx".
    • Tout en bas de la page,  l'exécutable et download it.
    • Quand c'est installé, l'exécuter.
    • Sur la première page de l'installeur, assurez-vous d'avoir coché la case à cocher "Ajouter Python 3.xxx to PATH".
    • Cliquer Install, puis Fermer quand l'installation est complète.
  2. Ouvrez votre invite de commandes (Windows)/terminal (OS X et GNULinux). Pour vérifier que fichier est installé, entré la commande suivante

    python -V
  3. Elle devrait retourner un numéro de verion. Si c'est le cas, naviguer dans le dossier contenant en utilisant la commande cd.

    # inclure le nom du doosier pour y s'y rendre, par exemple
    cd Bureau
    # utiliser deux points pour revenir au dossier précédent si besoin
    cd ..
  4. Entrer la commande pour démarrer le server dans ce dossier

    # Si la version de Python retournée est ultérieur à 3.X
    python3 -m http.server
    # Si la version de Python retournée est ultérieur à 2.X
    python -m SimpleHTTPServer
  5. Par défaut, il affiche la liste des fichiers  du dossier sur un serveur de développement, port 8000. Vous pouvez aller à ce serveur en saisissant  l'URL localhost:8000 dans votre navigateur web. Vous verrez les contenus du dossier listés — cliquer le fichier HTML que vous voulez exécuter.

Note: Si le port 8000 est occupé, vous pouvez choisir un autre port en spécifiant un nombre alternatif après la commande par exemple python -m http.server 7800 (Python 3.x) ou python -m SimpleHTTPServer 7800 (Python 2.x). Vous pouvez maintenant accéder à votre contenu à localhost:7800.

Faire fonctionner localement des languages serveur

Le module SimpleHTTPServer de Python est utile, mais il ne sait pas comment exécuter du code écrit dans des languages tels que PHP or Python. Pour  gérer ça, vous aurez besoin de quelque chose en plus — ce dont vous aurez besoin exactement dépend du language serveur que vous essayez d'exécuter. Voici quelques exemples:

  • Pour exécuter du code Python coté-serveur, vous aurez besoin d'utiliser un framework web Python. Vous pouvez découvrir comment utiliser le framework Django en lisant Django Web Framework (Python). Flask est aussi une bonne (légèrement plus léger) alternative à Django. Pour l'exécuter, vous aurez besoin d'installer Python/PIP, puis Flask en utilisant pip3 install flask.  À ce point, vous devriez être capable d'exécuter les exemples Python Flask en utilisant par exemple python3 python-example.py, puis consulter localhost:5000 dans votre navigateur.
  • Pour exécuter du code Node.js (JavaScript) côté-serveur, vous aurez besoin d'utiliser un  noeud brut ou un framework construit par dessus ce dernier. Express est un bon choix — voir Express Web Framework (Node.js/JavaScript).
  • Pour exécuter du code PHP côté serveur, vous aurez besoin d'une configuration serveur qui peut  interpréter PHP. De bonnes options pour tester PHP localement sont MAMP (Mac and Windows) , AMPPS (Mac, Windows, Linux) and LAMP (Linux, Apache, MySQL, et PHP/Python/Perl). Ce sont des paquets complets qui créent des configurations locales pour vous permettre d'exécuter le serveur Apache, PHP, et des bases de données MySQL.