Tutoriel Laravel 13 #1 : Configuration du projet
vérifié le 2 septembre 2026 · 6 min
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.
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 :
php -vSeule la première ligne compte. Elle doit annoncer PHP 8.3, 8.4 ou 8.5 :
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.
composer --versionExtensions 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 :
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 :
composer create-project laravel/laravel blogComposer télécharge Laravel et ses dépendances dans un dossier blog. L’opération prend une à trois minutes selon votre connexion.
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 :
cd blog
php artisan --versionLaravel Framework 13.30.1L’alternative : l’installateur Laravel
Il existe un installateur global qui raccourcit la commande et propose de choisir un kit de démarrage :
composer global require laravel/installer
laravel new blogC’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
APP_NAME="Mon blog"
APP_URL=http://localhost:8000APP_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 :
DB_CONNECTION=sqliteSQLite 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 :
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 :
php artisan storage:linkINFO The [public/storage] link has been connected to [storage/app/public].Démarrer le serveur
php artisan serve INFO Server running on [http://127.0.0.1:8000].
Press Ctrl+C to stop the serverOuvrez 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.
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 :
php artisan aboutEnvironment ........................................................
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 .................................................. databaseLe 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.