Chapitre 1 sur 9

Tutoriel Laravel 13 #1 : Configuration du projet

vérifié le 2 septembre 2026 · 6 min

Réponse rapide

Installez Laravel 13 avec composer create-project laravel/laravel blog, puis lancez php artisan serve. La commande crée le fichier .env, génère la clé d’application et exécute les migrations toute seule. Laravel 13 demande PHP 8.3 au minimum et utilise SQLite par défaut.

À la fin de ce chapitre, vous aurez un projet Laravel 13 installé, configuré sur SQLite, et la page de bienvenue s’affichera dans votre navigateur.

Ce premier chapitre installe Laravel 13, explique à quoi sert chaque dossier du projet et démarre le serveur de développement. À la fin, la page de bienvenue de Laravel s’affiche dans votre navigateur.

Ce dont vous avez besoin

Laravel 13 demande PHP 8.3 au minimum et accepte PHP 8.3, 8.4 et 8.5. Vérifiez votre version :

bash
php -v

Seule la première ligne compte. Elle doit annoncer PHP 8.3, 8.4 ou 8.5 :

code
PHP 8.4.25 (cli) (built: Aug 27 2026 20:19:39) (NTS)

Si la commande n’existe pas ou renvoie une version plus ancienne, installez PHP. Sous Windows, WampServer ou Laragon, sous macOS, Homebrew avec brew install php, sous Linux, le paquet php-cli de votre distribution.

Il vous faut aussi Composer, le gestionnaire de dépendances de PHP. C’est lui qui télécharge Laravel et tout ce dont il dépend.

bash
composer --version

Extensions PHP

Laravel a besoin de quelques extensions PHP. La plupart des installations les fournissent déjà. Deux méritent une vérification, parce que leur absence bloque plus tard :

bash
php -m | grep -E "pdo_sqlite|intl"

pdo_sqlite sert à la base de données de ce tutoriel. intl sera exigée au chapitre 4 par le panneau d’administration, l’installer maintenant évite un échec d’installation à ce moment-là.

Un éditeur

VS Code est gratuit et suffit largement, avec l’extension « PHP Intelephense ». PhpStorm est payant et comprend Laravel nativement. Le tutoriel n’en suppose aucun : tout se fait au terminal.

Créer le projet

Placez-vous dans le dossier où vous rangez vos projets, puis :

bash
composer create-project laravel/laravel blog

Composer télécharge Laravel et ses dépendances dans un dossier blog. L’opération prend une à trois minutes selon votre connexion.

Ce que la commande fait toute seule

Depuis Laravel 11, create-project ne se contente plus de télécharger les fichiers. Elle copie .env.example vers .env, génère la clé d’application, crée le fichier database/database.sqlite et exécute les migrations initiales. Les commandes php artisan key:generate et php artisan migrate que vous trouverez dans les anciens tutoriels ne sont plus nécessaires sur un projet neuf.

Vérifiez la version installée :

bash
cd blog
php artisan --version
code
Laravel Framework 13.30.1

L’alternative : l’installateur Laravel

Il existe un installateur global qui raccourcit la commande et propose de choisir un kit de démarrage :

bash
composer global require laravel/installer
laravel new blog

C’est pratique si vous créez souvent des projets, mais cela ajoute une dépendance globale à votre machine et pose parfois un problème de PATH. Si vous obtenez laravel: command not found, l’article corriger « laravel : command not found » explique la correction. Pour ce tutoriel, composer create-project suffit et évite ce détour.

L’arborescence du projet

Voici ce que contient le dossier blog. Le squelette de Laravel s’est beaucoup allégé depuis Laravel 8 : plusieurs fichiers que d’anciens tutoriels décrivent n’existent plus.

À la racine

app

Le code de votre application. À l’installation il ne contient que trois fichiers : un contrôleur de base, le modèle User et un fournisseur de services. Vous y ajouterez vos contrôleurs et vos modèles.

bootstrap

Le fichier bootstrap/app.php est le point de configuration de l’application : c’est là que se déclarent les routes, les intergiciels et le traitement des erreurs. Dans Laravel 8 et 9, ce rôle était réparti entre app/Http/Kernel.php, app/Console/Kernel.php et app/Exceptions/Handler.php, qui ont disparu.

config

Les fichiers de configuration. Laravel 13 n’en publie que dix par défaut, contre une vingtaine autrefois : les autres existent toujours dans le framework avec leurs valeurs par défaut. Pour en récupérer un et le modifier, utilisez php artisan config:publish.

database

Les migrations (la structure des tables), les seeders (les données de départ) et les factories (des objets de test). C’est aussi là que se trouve database.sqlite, votre base de données.

public

Le seul dossier que le serveur web doit exposer. Il contient index.php, le point d’entrée de toutes les requêtes, et les fichiers compilés par Vite.

resources

Les vues Blade, les feuilles CSS et les fichiers JavaScript avant compilation.

routes

Les déclarations d’adresses. Laravel 13 ne crée que deux fichiers, web.php et console.php. Les fichiers api.php et channels.php décrits par les tutoriels écrits pour Laravel 8 ne sont plus créés d’office : php artisan install:api et php artisan install:broadcasting les ajoutent si vous en avez besoin. Ce tutoriel n’utilise que web.php.

Dans le dossier app

Http/Controllers

Les contrôleurs : le code qui reçoit une requête, va chercher les données et choisit la vue à renvoyer.

Models

Les modèles Eloquent. Chaque table de la base a un modèle correspondant qui sert à la lire et à l’écrire. Ce dossier existe depuis Laravel 8, dans les versions antérieures les modèles étaient posés directement dans app.

Configurer le projet

Toute la configuration qui dépend de la machine vit dans le fichier .env, à la racine. Les fichiers de config le lisent par la fonction env(). Ce fichier ne doit jamais être versionné : il contient vos mots de passe.

Le nom et l’adresse du site

.env
APP_NAME="Mon blog"
APP_URL=http://localhost:8000

APP_NAME s’affichera dans le titre des pages. APP_URL sert à construire les liens absolus, notamment vers les images téléversées.

La base de données

Laravel 13 utilise SQLite par défaut :

.env
DB_CONNECTION=sqlite

SQLite range toute la base dans un seul fichier, database/database.sqlite. Il n’y a ni serveur à lancer, ni utilisateur à créer, ni mot de passe à retenir. Pour apprendre, c’est le meilleur choix : vous supprimez le fichier et vous repartez de zéro.

Si vous préférez MySQL ou MariaDB, créez la base puis remplacez ces lignes :

.env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=

Le tutoriel fonctionne avec les deux. Une différence de comportement apparaît au chapitre 8, sur le moteur de recherche : elle y est mesurée et expliquée.

Le lien de stockage

Les fichiers téléversés depuis le back-office atterrissent dans storage/app/public, qui n’est pas accessible depuis le web. Cette commande crée le lien symbolique qui les rend visibles :

bash
php artisan storage:link
code
INFO  The [public/storage] link has been connected to [storage/app/public].

Démarrer le serveur

bash
php artisan serve
code
  INFO  Server running on [http://127.0.0.1:8000].

  Press Ctrl+C to stop the server

Ouvrez http://127.0.0.1:8000. La page de bienvenue de Laravel s’affiche. Laissez ce terminal ouvert : le serveur tourne tant que vous ne l’arrêtez pas.

Si le port 8000 est déjà pris, Laravel ne s’arrête pas : il essaie le suivant et vous prévient. Lisez l’adresse affichée plutôt que de la supposer.

code
  Failed to listen on 127.0.0.1:8000 (reason: Address already in use)

   INFO  Server running on [http://127.0.0.1:8001].

Vous pouvez aussi servir le projet avec Apache, Nginx, Docker ou Laravel Herd. Dans ce cas, la racine du serveur doit pointer sur le dossier public, jamais sur la racine du projet : exposer la racine rendrait votre fichier .env téléchargeable.

Vérifier l’installation

Cette commande résume l’état du projet et confirme que tout est en place :

bash
php artisan about
code
Environment ........................................................
Application Name .......................................... Mon blog
Laravel Version ........................................... 13.30.1
PHP Version ................................................ 8.4.25
Composer Version ........................................... 2.10.3
Environment ................................................. local
Debug Mode ................................................ ENABLED

Drivers ...........................................................
Cache .................................................... database
Database ................................................... sqlite
Queue .................................................... database
Session .................................................. database

Le projet est prêt. Le sommaire de la série rappelle ce que chaque chapitre apporte. Le chapitre suivant explique comment associer une adresse à votre propre code.

Erreurs fréquentes

Le port 8000 est déjà utilisé php artisan serve ne s’arrête pas : il bascule sur 8001 et l’annonce. Lisez l’adresse affichée au lieu de la supposer.
L’extension intl manque Elle n’est pas nécessaire tout de suite, mais le panneau d’administration du chapitre 4 la réclame. L’installer maintenant évite un échec de composer plus tard.
La racine du serveur pointe sur le projet Apache ou Nginx doivent servir le dossier public, jamais la racine : sinon le fichier .env devient téléchargeable.
les fichiers api.php et channels.php sont absents C’est normal depuis Laravel 11. php artisan install:api et install:broadcasting les créent si besoin.
Newsletter

Les nouveaux tests, tutoriels et projets, par e-mail.

Tests reproductibles, code versionné, résultats datés. Jamais de spam.