WampServer et XAMPP sont pratiques, mais ils cachent ce qui se passe vraiment. Dans ce guide, tu vas installer PHP 8.4 sous Windows à la main, comme un pro : téléchargement de la bonne version, configuration du PATH et du php.ini, activation des extensions, serveur intégré, puis installation de Composer pour gérer tes dépendances. Le tout en 20 minutes, sans logiciel tout-en-un.
Pourquoi installer PHP 8.4 sous Windows sans WampServer ? Parce qu’un environnement installé à la main est plus léger, plus rapide à mettre à jour et surtout identique à celui des professionnels : la commande php disponible partout dans ton terminal, un php.ini que tu maîtrises, et Composer pour installer n’importe quelle librairie en une ligne.

C’est aussi la meilleure façon de comprendre comment fonctionne PHP. Le jour où un serveur de production te renvoie « extension manquante » ou « fonction non définie », tu sauras exactement où regarder.

- PHP 8.4 installé dans
C:\php, accessible depuis n’importe quel terminal. - Un fichier
php.iniconfiguré pour le développement, avec les extensions essentielles. - Le serveur web intégré de PHP pour tester tes projets sans Apache.
- Composer installé et prêt à l’emploi.
- Les bons réflexes pour mettre à jour PHP ou passer d’une version à l’autre.
Pourquoi PHP 8.4 ?
PHP 8.4 est sorti le 21 novembre 2024 et reçoit des correctifs de bugs et de sécurité actifs. Il apporte des nouveautés qui changent vraiment la façon d’écrire du code :
| Nouveauté | Ce qu’elle permet |
|---|---|
| Property hooks | Définir get et set directement sur une propriété, sans écrire de getters et setters |
| Visibilité asymétrique | Une propriété lisible partout mais modifiable seulement dans la classe : public private(set) |
new sans parenthèses | new Facture()->total() au lieu de (new Facture())->total() |
array_find(), array_any(), array_all() | Chercher ou tester des éléments d’un tableau sans boucle |
Attribut #[\Deprecated] | Marquer tes propres fonctions comme obsolètes |
PHP 8.5 est sorti en novembre 2025. La méthode d’installation décrite ici est exactement la même : remplace simplement 8.4 par 8.5 dans les noms de fichiers. On utilise PHP 8.4 dans ce guide car c’est la version la plus répandue chez les hébergeurs et dans les frameworks en ce moment, ce qui t’évite les surprises de compatibilité.
Étape 1 : installer le Visual C++ Redistributable
PHP pour Windows est compilé avec Visual Studio. Il a besoin des bibliothèques d’exécution Microsoft Visual C++ 2015-2022, sans quoi tu obtiendras une erreur VCRUNTIME140.dll est introuvable au premier lancement.
- Va sur la page officielle de Microsoft « Derniers téléchargements pris en charge de Visual C++ Redistributable ».
- Télécharge la version X64 (
vc_redist.x64.exe). - Installe-la et redémarre si l’installateur le demande.
Si tu as déjà installé des jeux ou des logiciels récents, elle est probablement déjà présente : l’installateur te le dira.
Étape 2 : télécharger la bonne version de PHP
Rends-toi sur windows.php.net/download, le site officiel des versions Windows de PHP. Pour chaque version, plusieurs fichiers sont proposés. Voici comment choisir :
| Variante | Pour quoi ? | Ton choix |
|---|---|---|
| x64 Non Thread Safe (NTS) | Ligne de commande, serveur intégré, PHP-FPM, IIS avec FastCGI | ✅ Celui-ci |
| x64 Thread Safe (TS) | Apache avec mod_php (module chargé dans Apache) | Seulement si tu utilises Apache en module |
| x86 | Windows 32 bits | Non, ton Windows est en 64 bits |
| Debug Pack, Development package | Développer PHP lui-même ou des extensions en C | Non |
Télécharge donc le fichier Zip de la section VS17 x64 Non Thread Safe de PHP 8.4. Le nom ressemble à php-8.4.x-nts-Win32-vs17-x64.zip.
Sur la page de téléchargement, chaque fichier est accompagné de son empreinte SHA256. Pour vérifier que ton téléchargement n’a pas été modifié, ouvre PowerShell dans ton dossier Téléchargements et compare :
Get-FileHash .\php-8.4.*-nts-Win32-vs17-x64.zip -Algorithm SHA256Étape 3 : extraire PHP dans C:\php
- Crée le dossier
C:\php. - Fais un clic droit sur le zip → Extraire tout → choisis
C:\php. - Vérifie que le fichier
C:\php\php.exeexiste bien (et pasC:\php\php-8.4.x\php.exe).
Un chemin court et sans espace évite de nombreux problèmes avec certains outils en ligne de commande. Et Program Files est protégé en écriture, ce qui complique la modification du php.ini.
Étape 4 : ajouter PHP au PATH
Le PATH est la liste des dossiers dans lesquels Windows cherche les programmes quand tu tapes une commande. En y ajoutant C:\php, tu pourras taper php dans n’importe quel terminal.
- Appuie sur la touche Windows, tape « variables d’environnement » et ouvre Modifier les variables d’environnement système.
- Clique sur Variables d’environnement….
- Dans Variables utilisateur, sélectionne Path puis Modifier.
- Clique sur Nouveau et ajoute
C:\php. - Valide avec OK dans toutes les fenêtres.
Ferme tous tes terminaux (et VS Code), puis ouvre un nouveau PowerShell et vérifie :
php -vPowerShellTu dois obtenir quelque chose comme :
PHP 8.4.x (cli) (built: ...) (NTS Visual C++ 2022 x64)
Copyright (c) The PHP Group
Zend Engine v4.4.x, Copyright (c) Zend TechnologiesTexteTrois causes possibles : le terminal était déjà ouvert avant la modification du PATH (ferme-le et rouvres-en un nouveau), le chemin ajouté ne pointe pas vers le dossier qui contient php.exe, ou un ancien PHP (WampServer, XAMPP) apparaît avant dans le PATH. Tape where.exe php pour voir quel php.exe Windows trouve en premier.
Étape 5 : configurer le php.ini
PHP est livré avec deux modèles de configuration dans C:\php :
php.ini-development: affiche les erreurs, idéal pour coder ;php.ini-production: masque les erreurs, pour un serveur en ligne.
Copie php.ini-development et renomme la copie en php.ini :
Copy-Item C:\php\php.ini-development C:\php\php.iniPowerShellOuvre ensuite C:\php\php.ini dans ton éditeur et modifie les réglages suivants (utilise la recherche avec Ctrl+F).
Le dossier des extensions
; Retire le point-virgule au début de la ligne (Windows uniquement)
extension_dir = "ext"INILes extensions essentielles
Dans la section Dynamic Extensions, retire le ; devant ces lignes :
extension=curl
extension=fileinfo
extension=gd
extension=intl
extension=mbstring
extension=openssl
extension=pdo_mysql
extension=pdo_sqlite
extension=sqlite3
extension=sodium
extension=zipINI| Extension | À quoi elle sert | Qui en a besoin |
|---|---|---|
openssl | Connexions HTTPS, chiffrement | Composer (obligatoire), la plupart des projets |
curl | Appels HTTP vers des API | Composer, Guzzle, SDK divers |
mbstring | Chaînes multi-octets (accents, emojis) | Laravel, Symfony, presque tout |
zip | Archives zip | Composer (téléchargements plus rapides) |
pdo_mysql | Connexion à MySQL / MariaDB | Tout projet avec une base MySQL |
pdo_sqlite, sqlite3 | Base SQLite | Tests, petits projets |
intl | Dates, nombres et langues localisés | Symfony, Laravel |
gd | Manipulation d’images | Miniatures, captchas |
fileinfo | Détection du type des fichiers | Envoi de fichiers, Laravel |
sodium | Cryptographie moderne | Chiffrement, jetons |
Les réglages de confort
date.timezone = Europe/Brussels
memory_limit = 512M
upload_max_filesize = 20M
post_max_size = 25M
max_execution_time = 60INITape php --ini : la commande affiche le fichier chargé (Loaded Configuration File). Si elle indique (none), ton php.ini n’est pas au bon endroit ou mal nommé (attention aux extensions cachées : php.ini.txt).
Vérifie que les extensions sont bien chargées :
php -mPowerShellLa liste doit contenir curl, mbstring, openssl, PDO, pdo_mysql, etc.
Étape 6 : tester avec le serveur web intégré
PHP inclut un petit serveur web, parfait pour le développement. Pas besoin d’Apache ni de Nginx.
mkdir C:\dev\test-php
cd C:\dev\test-phpPowerShellCrée un fichier index.php :
<?php
declare(strict_types=1);
// Une petite démonstration des nouveautés de PHP 8.4
final class Produit
{
public function __construct(
public private(set) string $nom, // lisible partout, modifiable seulement ici
private float $prixHt,
) {}
public float $prixTtc {
get => round($this->prixHt * 1.21, 2); // property hook : calculé à la lecture
}
}
$produits = [new Produit('Clavier', 49.90), new Produit('Souris', 19.90)];
$cher = array_find($produits, fn (Produit $p) => $p->prixTtc > 50);
echo '<h1>PHP ' . PHP_VERSION . ' fonctionne 🎉</h1>';
echo '<p>Produit le plus cher au-delà de 50 € TTC : ' . htmlspecialchars($cher?->nom ?? 'aucun') . '</p>';PHPLance le serveur :
php -S localhost:8000PowerShellOuvre http://localhost:8000 dans ton navigateur : la page affiche la version de PHP et le résultat. Pour arrêter le serveur, appuie sur Ctrl+C dans le terminal.
Il traite une seule requête à la fois et n’a pas été conçu pour la sécurité. Ne l’utilise jamais pour un site en ligne. En production, PHP tourne derrière Apache, Nginx ou un service d’hébergement.
Étape 7 : installer Composer
Composer est le gestionnaire de dépendances de PHP. Au lieu de télécharger des librairies à la main, tu déclares celles dont tu as besoin et Composer les installe, avec leurs propres dépendances, dans le dossier vendor/. Il génère aussi un autoloader : plus besoin d’écrire des dizaines de require.
Méthode recommandée : l’installateur Windows
- Va sur getcomposer.org/download et télécharge Composer-Setup.exe.
- Lance-le. Il détecte automatiquement
C:\php\php.exe(sinon, indique-le). - Laisse les options par défaut ; il ajoute Composer au PATH.
- Ferme et rouvre ton terminal, puis vérifie :
composer --version
composer diagnosePowerShellcomposer diagnose vérifie la configuration (extension openssl, accès réseau, version de PHP). Tout doit être OK.
C’est presque toujours openssl. Retourne dans le php.ini, vérifie que extension_dir = "ext" et extension=openssl sont bien décommentés, puis relance l’installateur.
Étape 8 : ton premier projet avec Composer
Créons un petit projet qui utilise une vraie librairie, pour voir Composer en action :
mkdir C:\dev\mon-projet
cd C:\dev\mon-projet
composer init --no-interaction --name=lmcode/mon-projet --autoload=src/
composer require vlucas/phpdotenvPowerShellComposer a créé trois éléments :
| Élément | Rôle | À commiter dans Git ? |
|---|---|---|
composer.json | La liste de tes dépendances et la configuration de l’autoload | ✅ Oui |
composer.lock | Les versions exactes installées | ✅ Oui |
vendor/ | Le code des librairies | ❌ Non (ajoute-le au .gitignore) |
Utilise maintenant la librairie dans un fichier index.php :
<?php
declare(strict_types=1);
require __DIR__ . '/vendor/autoload.php'; // un seul require pour toutes les librairies
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
echo 'Base de données : ' . $_ENV['DB_NAME'];PHP# .env
DB_NAME=boutiqueINIphp index.php
# Base de données : boutiquePowerShellLes commandes Composer que tu utiliseras tous les jours :
| Commande | Effet |
|---|---|
composer require paquet/nom | Ajoute une dépendance |
composer require --dev phpunit/phpunit | Ajoute une dépendance de développement uniquement |
composer install | Installe les versions exactes du composer.lock (après un git clone) |
composer update | Met à jour les dépendances dans les limites de composer.json |
composer remove paquet/nom | Supprime une dépendance |
composer dump-autoload | Régénère l’autoloader après l’ajout de classes |
composer audit | Vérifie les failles connues dans tes dépendances |
Après avoir récupéré un projet, utilise toujours composer install : tu obtiens exactement les versions testées par l’équipe. composer update sert à monter de version volontairement, puis on commite le nouveau composer.lock.
Bonus : installer Xdebug pour déboguer
Xdebug est l’extension de débogage de référence pour PHP. Elle permet de poser des points d’arrêt dans VS Code ou PhpStorm, d’inspecter les variables et d’exécuter ton code ligne par ligne, au lieu de multiplier les var_dump().
- Tape
php -i > infos.txt, puis colle le contenu du fichier dans l’assistant officiel xdebug.org/wizard. Il t’indique exactement quel fichier.dlltélécharger pour ta version de PHP. - Place le fichier dans
C:\php\exten le renommantphp_xdebug.dll. - Ajoute ces lignes à la fin de ton
php.ini:
zend_extension=xdebug
xdebug.mode=debug,develop
xdebug.start_with_request=triggerINI- Vérifie avec
php -v: la ligne with Xdebug doit apparaître.
Dans VS Code, installe l’extension PHP Debug, crée une configuration de lancement et démarre l’écoute avec F5. Le mode trigger évite de ralentir chaque requête : le débogage ne démarre que lorsque tu le demandes (extension de navigateur Xdebug Helper ou variable XDEBUG_TRIGGER).
Même inactif, Xdebug ajoute une surcharge. Ne l’installe jamais sur un serveur de production, et désactive-le (en commentant la ligne zend_extension) quand tu mesures les performances de ton code.
Installer PHP 8.4 sous Windows : le récapitulatif
Voici toutes les étapes en un coup d’œil, à garder pour ta prochaine installation :
| Étape | Action | Vérification |
|---|---|---|
| 1 | Installer Visual C++ Redistributable x64 | Pas d’erreur VCRUNTIME140.dll |
| 2 | Télécharger PHP 8.4 NTS x64 sur windows.php.net | Empreinte SHA256 identique |
| 3 | Extraire dans C:\php | C:\php\php.exe existe |
| 4 | Ajouter C:\php au PATH | php -v |
| 5 | Créer le php.ini et activer les extensions | php --ini et php -m |
| 6 | Tester avec le serveur intégré | php -S localhost:8000 |
| 7 | Installer Composer | composer diagnose |
Ajouter une base de données MySQL
PHP est installé, mais pas de serveur de base de données. Plusieurs options selon tes besoins :
- SQLite : rien à installer, l’extension est déjà activée. Idéal pour apprendre et pour les petits projets.
- MariaDB ou MySQL : télécharge l’installateur Windows officiel (MSI) et installe-le comme un service Windows.
- Docker : la solution la plus propre si tu travailles sur plusieurs projets. Notre guide WordPress en local avec Docker te montre le principe avec une base MySQL dans un conteneur.
Mettre à jour PHP ou changer de version
Avec une installation manuelle, mettre à jour PHP prend deux minutes :
- télécharge le nouveau zip (par exemple 8.4.y) ;
- renomme
C:\phpenC:\php-ancien; - extrais le nouveau zip dans
C:\php; - recopie ton
php.inidepuisC:\php-ancien; - vérifie avec
php -v, puis supprime l’ancien dossier.
Besoin de plusieurs versions pour différents projets ? Extrais chaque version dans son propre dossier (C:\php84, C:\php85) et change l’entrée du PATH, ou appelle directement le bon exécutable : C:\php85\php.exe -S localhost:8000. Des outils comme Scoop (scoop install php) peuvent aussi gérer les versions pour toi.
Dépannage
| Problème | Cause | Solution |
|---|---|---|
VCRUNTIME140.dll est introuvable | Visual C++ Redistributable absent | Installe vc_redist.x64.exe (étape 1) |
php n’est pas reconnu | PATH non mis à jour ou terminal ouvert avant | Rouvre le terminal, vérifie avec where.exe php |
Call to undefined function mb_strlen() | Extension non activée | Décommente extension=mbstring et extension_dir |
Unable to load dynamic library | Mauvais extension_dir | Mets extension_dir = "ext" ou le chemin complet "C:\php\ext" |
Composer : The openssl extension is required | openssl désactivée | Active extension=openssl |
| Composer très lent | Extension zip absente | Active extension=zip |
Port 8000 already in use | Le port est occupé | Utilise un autre port : php -S localhost:8080 |

FAQ
Peut-on installer PHP 8.4 sous Windows en gardant WampServer ?
Oui, les deux peuvent cohabiter. Fais simplement attention à l’ordre dans le PATH : la commande php utilisera le premier php.exe trouvé. Vérifie avec where.exe php.
Faut-il Apache pour développer en PHP ?
Non. Le serveur intégré (php -S) suffit pour la grande majorité des projets en développement, et les frameworks comme Laravel (php artisan serve) ou Symfony (symfony serve) s’appuient sur lui.
Thread Safe ou Non Thread Safe ?
Non Thread Safe (NTS) pour la ligne de commande, le serveur intégré et la grande majorité des usages. Thread Safe uniquement si tu charges PHP comme module dans Apache (mod_php).
Composer est-il obligatoire ?
Techniquement non, mais en pratique oui : tous les frameworks modernes et la quasi-totalité des librairies PHP s’installent avec Composer. C’est l’outil standard de l’écosystème depuis plus de dix ans.
Conclusion
Tu sais maintenant installer PHP 8.4 sous Windows proprement : les bonnes bibliothèques Microsoft, la variante NTS x64, le PATH, un php.ini configuré avec les extensions essentielles, le serveur intégré pour tester et Composer pour gérer tes dépendances. Un environnement léger, que tu maîtrises de bout en bout.
Prochaine étape : versionner ton projet avec Git. Notre guide Git et GitHub pour débutant te montre comment configurer ton poste en 15 minutes. Et pour mettre en pratique PHP sur un vrai projet, découvre notre tutoriel d’application de vote électronique en PHP et MySQL. La documentation officielle d’installation sous Windows est disponible sur php.net.

