Installation
Bloc Laravel · séance 1 · ~60 min
Vous avez installé Herd sous macOS ou Laragon sous Windows. Utilisez maintenant cet environnement pour créer le projet premier-test-laravel, ouvrir sa page d'accueil et lancer ses tests. Le même projet sert au chapitre MVC et au chapitre Structure d'un projet Laravel.
À la fin de ce chapitre, vous serez capables de :
- vérifier les outils nécessaires avec cinq commandes,
- créer un projet Laravel 13 avec l'installeur et les réponses du cours,
- expliquer ce que chaque étape de l'installation a produit dans le dossier,
- diagnostiquer les pannes courantes à partir du message affiché.
1. Vérifier les prérequis
Laravel 13 utilise PHP et Composer. Il utilise aussi Node.js, un programme qui exécute du JavaScript hors du navigateur. Node.js fournit npm, l'outil qui installe les paquets JavaScript comme Composer installe les paquets PHP.
L'installeur Laravel est le programme laravel. Il crée les fichiers d'un projet à partir de vos réponses. Sous macOS, ouvrez l'application Terminal. Sous Windows, ouvrez PowerShell. Tapez les cinq commandes une par une.
php --version
composer --version
node --version
npm --version
laravel --version
PHP 8.4.21 (cli) (built: May 18 2026 08:45:15) (NTS clang 15.0.0)
Copyright (c) The PHP Group
Built by Laravel Herd
Zend Engine v4.4.21, Copyright (c) Zend Technologies
with Zend OPcache v8.4.21, Copyright (c), by Zend Technologies
Composer version 2.8.6 2025-02-25 13:03:50
PHP version 8.4.21 (~/Library/Application Support/Herd/bin/php84)
Run the "diagnose" command to get more detailed diagnostics output.
v22.20.0
10.9.3
Laravel Installer 5.32.0
Les numéros exacts peuvent être plus récents. Vérifiez surtout la ligne qui commence par PHP : pour ce cours, elle doit indiquer 8.4. Laravel 13 fonctionne avec PHP 8.3, mais les paquets choisis pendant la création dépendent de la version de PHP utilisée. Afin que tout le groupe installe les mêmes versions, le cours utilise PHP 8.4.
Lorsqu'une commande répond « command not found » ou « n'est pas reconnu » :
- si
php,composer,nodeounpmmanque, vérifiez l'installation de Herd ou de Laragon. Ces deux environnements fournissent les quatre commandes. - si
laravelmanque ou affiche une version inférieure à 5.32, mettez l'installeur à jour.
Sous Herd, ouvrez le menu Settings et l'onglet PHP. Sur la ligne Laravel Installer, cliquez sur Update.
Sous Laragon ou sous Linux, installez-le avec Composer.
composer global require laravel/installer
Using version ^5.32 for laravel/installer
Sous Windows, le PATH est la liste des dossiers dans lesquels le terminal cherche les programmes demandés. Cette liste doit contenir %APPDATA%\Composer\vendor\bin. Fermez le terminal, rouvrez-le, puis relancez laravel --version.
Sous Linux, si ces outils ne sont pas encore installés, le script de php.new installe PHP 8.4, Composer et l'installeur en une commande.
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.4)"
2. Créer le projet premier-test-laravel
Placez-vous dans le dossier utilisé par votre serveur local. Herd rend accessibles les projets placés dans ~/Herd. Laragon fait de même avec le dossier www de son installation, situé dans C:\laragon\www avec le réglage par défaut. Un dossier nommé premier-test-laravel à cet endroit devient accessible à l'adresse http://premier-test-laravel.test.
Sous macOS, avec Herd :
cd ~/Herd
Sous Windows, avec Laragon :
cd C:\laragon\www
Lancez ensuite l'installeur.
laravel new premier-test-laravel --git --no-boost
premier-test-laravel est le nom du dossier créé. L'option --git crée un dépôt Git, un projet dont Git enregistre l'historique dans le dossier caché .git/. Elle y enregistre l'installation en deux commits, deux états du projet accompagnés d'un message. L'option --no-boost crée le projet sans Laravel Boost, un paquet qui fournit des consignes aux assistants de code IA.
┌ Do you want to use a starter kit? ───────────────────────────┐
│ ○ Yes / ● No │
└──────────────────────────────────────────────────────────────┘
Un starter kit est un ensemble de fichiers qui ajoute notamment les pages de connexion et d'inscription. Le projet du cours n'installe pas ce kit. Choisissez No, puis validez avec Entrée.
┌ Which frontend stack do you want to build on? ───────────────┐
│ › ● Blade │
│ ○ React │
│ ○ Svelte │
│ ○ Vue │
│ ○ Livewire │
└────────────────────────── No additional frontend scaffolding ┘
Gardez le choix proposé, Blade, puis validez. Blade est le moteur de templates de Laravel : il combine du HTML avec les données de l'application pour produire les pages envoyées au navigateur.
Avec ces réponses, le projet utilise aussi Pest, le programme qui lance les tests. Les données sont enregistrées avec SQLite, un système de base de données qui conserve ici toutes les tables dans un fichier. Les paquets JavaScript sont installés avec npm. L'installation prend environ une minute.
• Creating Laravel application
✔ Application installed
✔ Application initialized
• Running database migrations
✔ Database migrated
• Initializing Git repository
✔ Repository initialized
• Setting up Pest
✔ Pest installed
✔ Pest initialized
…
• Setting up frontend dependencies with npm
✔ Packages installed
✔ Assets built
┌ Application ready ───────────────────────────────────────────┐
│ You can start your local development using: │
│ │
│ 1. cd premier-test-laravel │
│ 2. composer run dev │
…
Le symbole … remplace les lignes de progression retirées de cette sortie.
Avec Herd, la fin de la sortie contient Open: http://premier-test-laravel.test.
Astuce
Si l'installeur répond The "--no-boost" option does not exist., il est trop ancien. Mettez-le à jour comme à la section 1.
3. Ce que l'installeur vient de faire
Les coches correspondent aux opérations effectuées par l'installeur. Certaines opérations ont créé des dossiers ou des fichiers. D'autres ont lancé une commande.
Plusieurs commandes utilisent Artisan, l'outil de Laravel que vous démarrez avec le fichier artisan situé à la racine du projet. Entrez dans premier-test-laravel.
cd premier-test-laravel
La clé d'application est une longue chaîne aléatoire placée dans .env. Chaque projet possède sa propre clé, qui reste dans ce fichier.
Un cookie est une petite donnée conservée par le navigateur. Une session conserve les données d'un utilisateur entre deux pages. Laravel chiffre notamment les cookies et les sessions avec la clé d'application. Leur contenu reste ainsi illisible sans cette clé.
Une migration est un fichier PHP qui décrit une modification de la base de données. La commande php artisan migrate lit ces fichiers et crée ici les tables initiales.
| Étape | Commande lancée pour vous | Ce qui apparaît |
|---|---|---|
| Paquets PHP | composer install |
vendor/, une centaine de paquets |
| Configuration | copie de .env.example |
.env, les réglages de cette machine |
| Clé d'application | php artisan key:generate |
la ligne APP_KEY=base64:… dans .env |
| Base de données | création du fichier | database/database.sqlite |
| Migrations | php artisan migrate |
les tables users, cache, jobs et leurs voisines |
| Git | git init, deux commits |
.git/ |
| Pest | composer require pestphp/pest --dev, puis pest --init |
tests/Pest.php |
| Paquets JavaScript | npm install |
node_modules/ |
| Fichiers du navigateur | npm run build |
public/build/ |
Vite prépare les fichiers CSS et JavaScript utilisés par le navigateur. Il lit les sources de resources/css/ et resources/js/, puis repère les autres fichiers demandés par ces sources. Il produit les fichiers que le navigateur chargera. La commande npm run build effectue cette préparation une fois et écrit le résultat dans public/build/.
Les migrations fournies avec Laravel créent les tables users, cache et jobs.
Pest est installé avec l'option --dev. Une dépendance de développement est un paquet utile pour écrire ou tester le code, mais inutile au serveur qui affiche le site. Composer enregistre Pest sous la clé require-dev de composer.json, comme au chapitre 2 de la POO.
L'installeur a créé deux commits avant d'installer les paquets JavaScript. Vérifiez cet historique avec git log, puis repérez avec git status les changements encore absents d'un commit.
git log --oneline
git status --short
bd383a0 Install Pest
1304dbc Set up a fresh Laravel app
M composer.json
?? package-lock.json
Les deux premières lignes montrent les commits créés par l'installeur. Leurs identifiants seront différents chez vous. L'installation avec npm a eu lieu après ces commits. Ses changements apparaissent donc encore dans git status : package-lock.json, qui contient la liste exacte des paquets JavaScript installés, est nouveau. Le fichier composer.json a seulement été remis en forme. Enregistrez ces deux changements dans un troisième commit.
git add .
git commit -m "Installation de npm"

Le projet contient aussi deux fichiers identiques, AGENTS.md et CLAUDE.md. Leur texte fournit des consignes aux assistants de code IA qui analysent le projet. Ces consignes demandent l'installation de Laravel Boost, même si l'option --no-boost ne l'a pas installé. Refusez toute proposition de passer à PHP 8.5 : le groupe travaille avec PHP 8.4.
4. Voir la page d'accueil
Herd et Laragon rendent déjà le dossier premier-test-laravel accessible au navigateur. Ouvrez http://premier-test-laravel.test. Sous Laragon, si l'adresse ne répond pas, cliquez sur « Stop », puis sur « Start All ». Ce redémarrage charge la configuration du nouveau dossier.
Sans Herd ni Laragon, sous Linux par exemple, démarrez le serveur de développement avec composer run dev. Cette commande fonctionne aussi avec Herd ou Laragon.
composer run dev
╭─────────────╮╭──────────────────────────────────────────────────
│ 1 server ││ php artisan serve
│ 2 queue ││──────────────────────────────────────────────────
│ 3 logs ││ INFO Server running on [http://127.0.0.1:8000].
│ 4 vite ││ Press Ctrl+C to stop the server
╰─────────────╯╰──────────────────────────────────────────────────
↑/↓ scroll tab tabs c clear / search s stream q quit
La sortie est raccourcie à droite. La commande composer run dev garde quatre programmes actifs pendant que vous travaillez. Chacun remplit une tâche différente :
serverdémarre le serveur PHP. Il répond surhttp://127.0.0.1:8000, qui désigne le même endroit quehttp://localhost:8000.queueexécute les tâches que l'application enregistre dans la file d'attente, comme l'envoi d'un courriel.logsaffiche le journal, le fichier dans lequel Laravel écrit les erreurs et les autres messages de l'application.viterelance Vite après chaque modification du CSS ou du JavaScript, afin de reconstruire les fichiers du navigateur.
Sur macOS et Linux, appuyez sur q ou Ctrl+C pour arrêter les quatre programmes. Sous Windows, les messages de server, queue et vite apparaissent dans le même terminal. Chaque ligne commence par le nom du programme, et logs n'est pas lancé. Utilisez Ctrl+C pour tout arrêter.
Pendant le fonctionnement de ces programmes, vous ne pouvez pas taper une autre commande dans ce terminal. Ouvrez-en un second pour lancer Artisan ou les tests.

Astuce
Le fichier .env contient APP_URL=http://localhost:8000. Avec Herd ou Laragon, remplacez cette ligne par APP_URL=http://premier-test-laravel.test. Lorsque le code demande un lien complet, Laravel utilise cette adresse comme début du lien. C'est notamment le cas pour un lien placé dans un courriel.

5. Vérifier depuis le terminal
Dans le dossier premier-test-laravel, php artisan --version affiche la version de Laravel chargée par le projet.
php artisan --version
Laravel Framework 13.33.0
La commande php artisan about affiche les versions et les principaux réglages du projet.
php artisan about
Environment ................................................................
Application Name ................................................... Laravel
Laravel Version .................................................... 13.33.0
PHP Version ......................................................... 8.4.21
Composer Version ..................................................... 2.8.6
Environment .......................................................... local
Debug Mode ......................................................... ENABLED
URL ......................................................... localhost:8000
…
Drivers ....................................................................
Broadcasting ........................................................... log
Cache ............................................................. database
Database ............................................................ sqlite
…
La sortie complète compte 29 lignes réparties en quatre blocs. Vérifiez PHP Version, puis Database, qui doit contenir sqlite. La ligne URL reprend la valeur de APP_URL. Après la modification de la section 4, elle affiche premier-test-laravel.test.
Un projet neuf contient deux tests. La commande php artisan test les lance.
php artisan test
PASS Tests\Unit\ExampleTest
✓ that true is true 0.01s
PASS Tests\Feature\ExampleTest
✓ the application returns a successful response 0.10s
Tests: 2 passed (2 assertions)
Duration: 0.21s
Les deux lignes PASS confirment que PHP charge les paquets et la clé de .env, puis que la page d'accueil répond. La ligne Database de php artisan about vérifie séparément que le projet utilise SQLite.
6. La variante composer create-project
Composer peut aussi créer un projet Laravel sans passer par l'installeur. Vous rencontrerez cette commande dans des tutoriels, mais le cours la déconseille, pour les raisons données sous la sortie. N'exécutez pas composer create-project laravel/laravel premier-test-laravel maintenant, car le dossier premier-test-laravel existe déjà. Pour faire un essai séparé, remplacez premier-test-laravel par un autre nom, par exemple essai.
composer create-project laravel/laravel premier-test-laravel
…
> @php artisan key:generate --ansi
INFO Application key set successfully.
> @php -r "file_exists('database/database.sqlite') || touch('database/database.sqlite');"
> @php artisan migrate --graceful --ansi
…
composer create-project installe les paquets PHP, crée .env, ajoute la clé, crée le fichier SQLite et lance les migrations. Cette méthode conserve PHPUnit comme lanceur de tests à la place de Pest et ne crée pas de dépôt Git. Elle n'installe pas non plus les paquets JavaScript, donc node_modules/ et public/build/ sont absents.
Vous devez alors compléter le projet à la main : initialiser Git avec git init, lancer npm install, puis produire les fichiers du navigateur avec npm run build. Pest reste absent. Pour ces raisons, créez toujours vos projets avec laravel new.
7. Dépannage
Astuce
Mauvaise version de PHP. Toute commande php artisan s'arrête sur une erreur fatale qui contient ce message :
Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.4.1". You are running 8.3.17.
Le projet a été créé avec PHP 8.4, mais la commande php de ce terminal lance PHP 8.3.17. Choisissez PHP 8.4 dans Herd ou dans le menu PHP de Laragon. Fermez le terminal, rouvrez-le, puis vérifiez la version avec php --version.
Astuce
Clé d'application vide. La page affiche l'erreur 500 MissingAppKeyException et le message « No application encryption key has been specified. ». Ce message indique que la ligne APP_KEY= de .env est vide. Lancez php artisan key:generate, qui répond INFO Application key set successfully., puis rechargez la page.
Astuce
Port 8000 occupé. Un port est un numéro qui dirige une connexion vers un programme précis de votre ordinateur. Un autre programme utilise déjà le port 8000, souvent un ancien composer run dev resté ouvert. Le serveur démarre alors sur le port suivant et affiche sa nouvelle adresse.
Failed to listen on 127.0.0.1:8000 (reason: Address already in use)
INFO Server running on [http://127.0.0.1:8001].
Ouvrez l'adresse affichée, ici http://127.0.0.1:8001. L'adresse localhost:8000 mène encore à l'autre programme. Arrêtez les anciens serveurs dans leurs terminaux pour libérer le port 8000.
Astuce
Projet cloné sans vendor/. Les fichiers .gitignore excluent vendor/ et .env de l'historique Git. Ils sont donc absents d'un dépôt cloné. La première commande php artisan échoue alors sur Failed opening required '…/vendor/autoload.php'. La commande composer install recrée vendor/, tandis qu'une copie de .env.example fournit le nouveau .env.
À retenir
- Vérifiez avec
php --versionque le terminal utilise PHP 8.4. - Créez le projet avec
laravel new premier-test-laravel --git --no-boost, sans starter kit, puis gardez Blade, Pest et SQLite. - Reliez chaque étape à son résultat dans
premier-test-laravel, notammentvendor/,.env,database.sqlite,node_modules/,public/build/et.git/. - Vérifiez les réglages avec
php artisan aboutet le fonctionnement avecphp artisan test. - Repérez dans chaque message d'erreur la commande, le fichier ou la version qui pose problème.
Exercices
Exercice 1. Le projet premier-test-laravel. Créez le projet premier-test-laravel comme à la section 2, puis ouvrez sa page d'accueil. Lancez php artisan about et copiez la sortie dans un fichier about.txt placé sur votre bureau, hors du projet. Vérifiez que Laravel Version contient 13 et que Database contient sqlite.
Exercice 2. Le nom de l'application. Dans .env, remplacez APP_NAME=Laravel par APP_NAME="Premier test", guillemets compris. Rechargez la page d'accueil et observez le titre de l'onglet. Retirez ensuite les guillemets, puis lancez php artisan --version. Notez le message obtenu et expliquez le rôle des guillemets. Remettez-les enfin.
Exercice 3. Les tests. Lancez php artisan test et vérifiez que les deux tests affichent PASS. Ouvrez tests/Feature/ExampleTest.php. Relevez l'adresse demandée par le test et le code de réponse attendu.
Exercice 4. À la maison, sur papier. Ouvrez .gitignore à la racine du projet, puis database/.gitignore. Parmi vendor/, node_modules/, public/build/, .env et database/database.sqlite, repérez les éléments absents de Git. Pour chacun, écrivez une phrase qui explique cette absence. Vérifiez si une commande peut le recréer ou s'il contient un secret propre à votre machine.