Créa-blog

#100JoursPourCoder
Projet Créa-code

Ressources pour développeur web

Théme de la semaine : Découvrir node.js

Créer facilement un serveur local via le terminal

Temps de lecture estimé : 8 minutes
Accueil PHP 8 Créer facilement un serveur local via le terminal

Lorsque l’on débute en développement web, on entend souvent parler de « serveur local ». Pourtant, ce terme peut sembler flou au départ. À quoi cela sert-il exactement ? Et surtout, comment en créer un soi-même sans passer par des outils complexes ?

Bonne nouvelle : il est tout à fait possible de mettre en place un serveur local directement depuis le terminal, en quelques lignes de commande seulement. Que vous soyez sur Windows, macOS ou Linux, vous pouvez faire tourner vos projets web localement pour les tester avant de les mettre en ligne.

Dans ce guide complet, nous allons voir ensemble :

  • Ce qu’est un serveur et pourquoi il est indispensable pour le développement web.
  • Comment fonctionne un serveur local et en quoi il diffère d’un hébergement en ligne.
  • Comment en créer un pas à pas via le terminal, selon votre système d’exploitation.
  • Et enfin, comment aller plus loin en configurant PHP, Python ou Node.js selon vos besoins.

L’objectif est simple : à la fin de ce tutoriel, vous saurez créer, lancer et gérer un serveur local depuis votre terminalcomme un véritable développeur professionnel, tout en comprenant ce que vous faites.

Comprendre ce qu’est un serveur

Avant de plonger dans le terminal, il faut comprendre ce que signifie le mot « serveur ».

Un serveur est un ordinateur (ou un programme) qui fournit des ressources ou des services à d’autres ordinateurs appelés clients. Lorsqu’un internaute visite un site web, son navigateur joue le rôle de client : il envoie une requête HTTP vers un serveur, qui lui répond en renvoyant les fichiers nécessaires (HTML, CSS, images, etc.).

En d’autres termes, le serveur est le cœur du web : sans lui, impossible de faire fonctionner un site.

Mais alors, pourquoi créer un serveur local ? Parce que pendant la phase de développement, vous n’avez pas besoin d’un hébergement en ligne. Vous pouvez simuler le fonctionnement d’un vrai serveur directement sur votre machine.

On appelle cela un serveur local, car il tourne uniquement sur votre ordinateur. Vous pouvez y accéder via une adresse du type http://localhost ou http://127.0.0.1.

Qu’est-ce qu’un serveur local ?

Un serveur local permet d’exécuter vos projets web comme s’ils étaient hébergés en ligne, mais sans avoir besoin d’internet.

Par exemple, imaginons que vous développiez un site en PHP. Si vous ouvrez simplement votre fichier index.php dans un navigateur en double-cliquant dessus, il ne s’exécutera pas correctement. Pourquoi ? Parce que PHP est un langage interprété côté serveur. Il faut donc un serveur pour que le code soit compris et exécuté avant d’envoyer le résultat au navigateur.

C’est exactement le rôle d’un serveur local : reproduire le comportement d’un vrai serveur web (comme Apache, Nginx ou Node.js), mais sur votre propre ordinateur.

Grâce à lui, vous pouvez :

  • Tester votre site web avant de le publier.
  • Travailler sans connexion internet.
  • Expérimenter avec des langages comme PHPPythonNode.js, etc.
  • Apprendre à comprendre le fonctionnement des requêtes HTTP.

Pourquoi passer par le terminal ?

Vous avez peut-être entendu parler de logiciels comme XAMPPWAMP ou MAMP. Ces outils graphiques permettent aussi de créer un serveur local, mais ils cachent souvent ce qu’il se passe en arrière-plan.

Utiliser le terminal (ou la ligne de commande) a plusieurs avantages :

  • Vous comprenez ce que vous faites, ligne par ligne.
  • Vous gagnez en légèreté : pas besoin d’installer un logiciel complet.
  • Vous pouvez lancer un serveur plus rapidement, sans interface graphique.
  • C’est la méthode universelle : elle fonctionne sur tous les systèmes.

En plus, de nombreux outils de développement modernes utilisent le terminal (Git, npm, Composer, etc.). Apprendre à manipuler le terminal est donc une compétence essentielle pour tout développeur web.

Préparer votre environnement

Avant de lancer un serveur, il faut vérifier deux choses :

  1. Votre terminal est prêt à exécuter des commandes.
  2. Vous savez dans quel dossier se trouve votre projet web.

Sur Windows, vous pouvez utiliser :

  • Le terminal PowerShell,
  • L’invite de commande (cmd),
  • Ou mieux encore, Windows Terminal (installable depuis le Microsoft Store).

Sur macOS ou Linux, le terminal est déjà disponible. Vous pouvez l’ouvrir depuis le menu des applications ou avec le raccourci :

  • Ctrl + Alt + T sur Linux,
  • Cmd + Espace, puis tapez “Terminal” sur macOS.

Ensuite, placez-vous dans le dossier de votre projet grâce à la commande cd. Par exemple, si votre site se trouve dans un dossier nommé mon_site sur le bureau :

cd Bureau/mon_site

ou sur Windows :

cd Desktop\mon_site

Votre terminal affichera alors le chemin du dossier où vous vous trouvez. C’est ici que nous allons lancer notre serveur.

Créer un serveur local avec Python

Si vous avez Python installé (ce qui est le cas sur la plupart des ordinateurs), vous pouvez créer un serveur local instantané en une seule commande.

Tapez simplement :

python -m http.server

ou, selon votre version de Python :

python3 -m http.server

Par défaut, cela démarre un serveur sur le port 8000. Vous pouvez donc ouvrir votre navigateur et aller à l’adresse suivante :

http://localhost:8000

Vous verrez alors le contenu de votre dossier actuel s’afficher dans le navigateur.

Chaque fichier HTML, CSS ou image présent dans ce dossier est désormais servi par votre serveur local Python. Si vous voulez changer le port (par exemple utiliser le port 8080), ajoutez simplement le numéro à la fin de la commande :

python3 -m http.server 8080

Comment arrêter le serveur ?

Appuyez sur les touches :

Ctrl + C

Cela stoppe immédiatement le serveur.

Exemple concret

Imaginons que vous avez un fichier index.html dans votre dossier :

<!DOCTYPE html>
<html lang="fr">
<head>
  <meta charset="UTF-8">
  <title>Mon premier serveur local</title>
</head>
<body>
  <h1>Bienvenue sur mon serveur local</h1>
  <p>Ce site tourne grâce au terminal !</p>
</body>
</html>

Lancez votre serveur Python, puis ouvrez http://localhost:8000.
Vous verrez votre page s’afficher : votre serveur local fonctionne !

Créer un serveur local avec PHP

Si vous travaillez sur un site dynamique avec PHP, vous pouvez aussi créer un serveur local très facilement, sans passer par WAMP ou MAMP.

Dans le terminal, placez-vous dans le dossier du projet, puis tapez :

php -S localhost:8000

PHP démarre alors un serveur local intégré. Ouvrez votre navigateur et allez sur :

http://localhost:8000

Votre site s’exécutera exactement comme s’il était hébergé sur un vrai serveur Apache ou Nginx. Par exemple, si vous avez un fichier index.php :

<?php
echo "<h1>Bienvenue sur mon serveur local PHP</h1>";
?>

En ouvrant http://localhost:8000, vous verrez le message s’afficher : cela signifie que votre code PHP est interprété correctement par le serveur.

Créer un serveur local avec Node.js

Node.js est une technologie très utilisée aujourd’hui pour développer des sites web modernes, des applications et même des serveurs complets. Si vous souhaitez apprendre le développement web de manière professionnelle, comprendre comment créer un serveur avec Node.js est une compétence incontournable.

Installer Node.js

Avant de pouvoir lancer un serveur Node.js, vous devez d’abord installer Node sur votre machine. Rendez-vous sur le site officiel : https://nodejs.org et téléchargez la version « LTS » (Long Term Support), plus stable et adaptée aux débutants.

Une fois l’installation terminée, ouvrez votre terminal et tapez :

Formation web et informatique - Alban Guillier - Formateur

Des formations informatique pour tous !

Débutant ou curieux ? Apprenez le développement web, le référencement, le webmarketing, la bureautique, à maîtriser vos appareils Apple et bien plus encore…

Formateur indépendant, professionnel du web depuis 2006, je vous accompagne pas à pas et en cours particulier, que vous soyez débutant ou que vous souhaitiez progresser. En visio, à votre rythme, et toujours avec pédagogie.

Découvrez mes formations Qui suis-je ?
node -v

Si une version s’affiche (par exemple v20.10.0), c’est que tout fonctionne.

Créer un serveur minimaliste

Créez un nouveau fichier dans votre dossier de projet, par exemple server.js. Ouvrez-le avec votre éditeur de code et ajoutez ces quelques lignes :

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/html; charset=utf-8'});
  res.end('<h1>Mon serveur local avec Node.js fonctionne !</h1>');
});

server.listen(3000, () => {
  console.log('Serveur lancé sur http://localhost:3000');
});

Ensuite, dans le terminal, exécutez la commande :

node server.js

Allez sur votre navigateur et ouvrez l’adresse :

http://localhost:3000

Félicitations, vous venez de lancer votre propre serveur web avec Node.js depuis le terminal ! Node écoute les requêtes HTTP sur le port 3000 et renvoie une page HTML à chaque fois qu’un client (comme votre navigateur) envoie une demande.

Comprendre le rôle des ports

Vous avez sûrement remarqué que nous avons parlé plusieurs fois de “ports” : 8000, 8080, 3000… Mais à quoi servent-ils exactement ?

Chaque port correspond à une “porte d’entrée” de votre ordinateur pour un certain type de communication. Lorsque vous lancez un serveur, vous devez lui indiquer sur quel port il doit écouter les requêtes entrantes.

En pratique :

  • Le port 80 est celui utilisé par défaut pour les sites web HTTP.
  • Le port 443 est réservé au HTTPS (sites sécurisés).
  • Les ports comme 8000, 8080 ou 3000 sont souvent utilisés pour le développement local.

Vous pouvez choisir n’importe quel port, tant qu’il n’est pas déjà utilisé par un autre service.

Pour aller plus loin, consultez notre tutoriel complet sur Les ports en informatiques.

Que faire si le port est déjà occupé ?

Si vous essayez de lancer un serveur et que le terminal affiche une erreur du type :

Address already in use

cela signifie que le port choisi est déjà utilisé. Dans ce cas, il suffit de modifier la commande :

php -S localhost:8080

ou pour Python :

python3 -m http.server 8081

ou encore pour Node.js :

server.listen(8082);

Vous pouvez ainsi changer librement de port pour éviter les conflits.

Accéder à votre serveur local depuis un autre appareil

Saviez-vous qu’il est aussi possible d’accéder à votre serveur local depuis un autre appareil du même réseau (par exemple un smartphone ou une tablette) ?

Pour cela :

  1. Trouvez l’adresse IP locale de votre ordinateur.
    • Sur Windows : tapez ipconfig dans le terminal.
    • Sur macOS / Linux : tapez ifconfig.
  2. Notez l’adresse du type 192.168.x.x.
  3. Lancez votre serveur local normalement.
  4. Depuis un autre appareil connecté au même Wi-Fi, ouvrez le navigateur et entrez :http://192.168.x.x:8000

Votre site s’affichera, comme si le serveur local était un hébergement réel ! C’est une méthode très pratique pour tester l’affichage sur mobile sans mettre votre site en ligne.

Créer un serveur plus complet avec Node.js

Le petit serveur que nous avons créé avec Node fonctionne, mais il est encore très basique. Voyons comment l’améliorer pour qu’il serve de vrais fichiers HTML, CSS et images, comme un serveur classique.

Modifions le fichier server.js :

const http = require('http');
const fs = require('fs');
const path = require('path');

const server = http.createServer((req, res) => {
  let filePath = req.url === '/' ? './index.html' : `.${req.url}`;
  const extname = String(path.extname(filePath)).toLowerCase();
  const mimeTypes = {
    '.html': 'text/html',
    '.js': 'text/javascript',
    '.css': 'text/css',
    '.png': 'image/png',
    '.jpg': 'image/jpeg',
    '.gif': 'image/gif',
  };

  const contentType = mimeTypes[extname] || 'application/octet-stream';

  fs.readFile(filePath, (error, content) => {
    if (error) {
      res.writeHead(404, {'Content-Type': 'text/html; charset=utf-8'});
      res.end('<h1>404 - Fichier non trouvé</h1>');
    } else {
      res.writeHead(200, {'Content-Type': contentType});
      res.end(content, 'utf-8');
    }
  });
});

server.listen(3000, () => {
  console.log('Serveur Node.js en cours sur http://localhost:3000');
});

Ce code fait plusieurs choses :

  • Il lit le fichier demandé par le navigateur (ex. style.css ou index.html).
  • Il envoie le bon type de contenu (HTML, image, CSS…).
  • Il gère les erreurs avec une page 404 si le fichier n’existe pas.

C’est ainsi que fonctionnent les serveurs web professionnels comme Apache ou Nginx, mais ici vous l’avez créé entièrement vous-même via le terminal.

Automatiser le lancement de votre serveur

Si vous relancez souvent le même serveur, il est pratique d’automatiser sa mise en route.

Sous macOS ou Linux

Vous pouvez créer un fichier exécutable nommé start_server.sh :

#!/bin/bash
cd /chemin/vers/votre/projet
php -S localhost:8000

Enregistrez-le, puis rendez-le exécutable :

chmod +x start_server.sh

Et lancez-le simplement avec :

./start_server.sh

Pour en savoir plus, consultez notre tutoriel complet intitulé CHMOD : Gérer vos fichiers et dossiers depuis le terminal.

Sous Windows

Créez un fichier start_server.bat :

cd C:\Users\votre_nom\Desktop\mon_site
php -S localhost:8000

Double-cliquez sur le fichier : votre serveur démarre automatiquement !

Cette méthode est utile pour gagner du temps et lancer vos projets sans retaper les commandes.

12. Gérer les erreurs courantes

Lorsque vous débutez avec un serveur local, certaines erreurs peuvent survenir. Voici comment les comprendre et les corriger.

Le serveur ne démarre pas

  • Vérifiez que vous êtes bien dans le bon dossier (cd mon_site).
  • Vérifiez que le langage est bien installé (php -vpython -Vnode -v).
  • Essayez un autre port (ex. 8080 au lieu de 8000).

Les fichiers ne s’affichent pas

  • Vérifiez le chemin dans votre navigateur (http://localhost:8000/index.html).
  • Assurez-vous que le fichier existe vraiment dans le dossier.
  • Regardez les messages d’erreur dans le terminal : ils donnent souvent des indices précieux.

Le navigateur affiche une ancienne version du site

  • Videz le cache de votre navigateur ou forcez le rechargement avec Ctrl + F5.

Utiliser un serveur local professionnel

Les serveurs créés via le terminal sont parfaits pour apprendre et tester, mais si vous souhaitez aller plus loin, vous pouvez installer :

  • Apache ou Nginx, pour simuler un vrai hébergement web.
  • MySQL ou MariaDB, pour gérer vos bases de données.
  • PHPMyAdmin, pour manipuler vos données facilement.
  • Ou même utiliser des outils comme Docker, pour créer des environnements de développement isolés.

Le terminal vous servira alors à installer, configurer et contrôler ces services, exactement comme sur un serveur distant professionnel.


Créer un serveur local via le terminal n’a rien de sorcier. C’est au contraire un excellent moyen de comprendre ce qui se passe réellement derrière un site web.

Vous avez appris qu’un serveur n’est rien d’autre qu’un programme qui écoute les requêtes d’un client et répond avec le bon contenu. Grâce au terminal, vous pouvez manipuler ce mécanisme de manière claire et directe, sans interface graphique.

En quelques commandes, vous êtes désormais capable de :

  • Lancer un serveur avec Python, PHP ou Node.js.
  • Gérer les ports, erreurs et chemins de fichiers.
  • Automatiser le lancement de votre environnement local.

Cette maîtrise vous sera très utile pour vos futurs projets web. Non seulement vous gagnerez du temps, mais vous développerez aussi une vraie compréhension du fonctionnement des serveurs et des interactions client/serveur.

Alors, la prochaine fois que vous ouvrirez votre terminal, souvenez-vous : il ne s’agit pas d’un outil réservé aux experts, mais d’un véritable allié pour devenir un développeur complet et autonome.