Installer PHP et ses extensions pour Laravel sur Debian 13
vérifié le 2 septembre 2026 · 4 min
Debian 13 fournit PHP 8.4 dans ses dépôts officiels : sudo apt install php-cli php-fpm php-mbstring php-xml php-curl php-zip php-bcmath php-intl php-mysql suffit pour Laravel 13, sans dépôt tiers. Attention à deux paquets souvent cités à tort : php-json ne sert plus à rien depuis PHP 8.0, et c’est php-mysql qu’il faut, pas php-mysqli, parce que Laravel passe par PDO.
Laravel 13 réclame PHP 8.2 au minimum et une poignée d’extensions. Bonne nouvelle : Debian 13 « trixie » livre PHP 8.4 dans ses dépôts officiels, ce qui rend le dépôt tiers Sury inutile dans le cas courant.
Étapes exécutées sur un conteneur Debian 13 propre, le 2 septembre 2026. Ce chapitre s’inscrit dans l’installation de Laravel sur Debian, dans le parcours Développement web.
Vérifier ce que propose votre Debian
Avant d’ajouter le moindre dépôt, regardez ce que la distribution offre :
sudo apt update
apt-cache policy php-cliphp-cli:
Installed: (none)
Candidate: 2:8.4+96
Version table:
2:8.4+96 500
500 http://deb.debian.org/debian trixie/main arm64 PackagesPHP 8.4 est disponible. C’est largement suffisant pour Laravel 13, et cela vous évite un dépôt externe à maintenir. La correspondance entre version de Debian et version de PHP fournie :
| Debian | PHP des dépôts officiels | Suffisant pour Laravel 13 ? |
|---|---|---|
| 13 « trixie » | 8.4 | Oui |
| 12 « bookworm » | 8.2 | Oui, au minimum requis |
| 11 « bullseye » | 7.4 | Non, dépôt tiers nécessaire |
Installer PHP et les extensions
Une seule commande couvre le socle requis par Laravel, plus les pilotes de base de données :
sudo apt install -y php-cli php-fpm \
php-mbstring php-xml php-curl php-zip \
php-bcmath php-intl \
php-mysql php-sqlite3 \
unzip curl ca-certificatesDeux extensions courantes ne figurent pas dans cette liste parce qu’elles dépendent de vos choix d’architecture : php-redis, traitée dans le chapitre sur Redis, et php-gd ou php-imagick pour le traitement d’images.
Contrôlez la version obtenue :
php -vPHP 8.4.24 (cli) (built: Jul 31 2026 05:11:11) (NTS)Puis vérifiez que toutes les extensions attendues par Laravel répondent présentes :
for e in ctype curl dom fileinfo filter hash mbstring openssl \
pcre pdo session tokenizer xml bcmath intl zip; do
printf "%-10s %s\n" "$e" "$(php -m | grep -qix "$e" && echo OK || echo MANQUANT)"
doneSur l’installation de test, les seize lignes renvoient OK. Plusieurs de ces extensions sont compilées dans le binaire PHP de Debian et n’ont pas de paquet dédié : elles apparaissent quand même dans php -m.
Deux paquets souvent cités à tort
Depuis PHP 8.0, l’extension JSON est compilée dans le binaire et ne peut plus être désactivée. Le paquet php-json subsiste dans Debian en simple transition. L’installer ne casse rien, mais il n’apporte rien.
Laravel passe par PDO, pas par mysqli. C’est php-mysql qu’il faut, et il fournit les deux. Vérifiez ce que PHP voit réellement :
php -r 'echo implode(", ", PDO::getAvailableDrivers()), PHP_EOL;'mysql, sqliteSi mysql n’apparaît pas dans cette liste, Laravel ne pourra pas se connecter à MySQL ou MariaDB, quels que soient les réglages du fichier .env.
Régler PHP pour une application web
Deux fichiers coexistent, avec des valeurs différentes : celui de la ligne de commande et celui du serveur web. Modifier le mauvais est une source classique de confusion.
/etc/php/8.4/cli/php.ini # artisan, composer, tâches planifiées
/etc/php/8.4/fpm/php.ini # requêtes servies par nginx ou ApacheLes réglages qui comptent pour une application Laravel se trouvent dans le fichier FPM :
memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 21M
max_execution_time = 60post_max_size doit rester supérieur à upload_max_filesize, sinon un envoi à la taille maximale est rejeté avant d’atteindre l’application. Rechargez ensuite le service, sans quoi les valeurs restent inchangées :
sudo systemctl reload php8.4-fpm
php -i | grep memory_limit # valeur CLI
sudo -u www-data php-fpm8.4 -i | grep memory_limitPHP en place, l’étape suivante est l’installation de Composer.
Installer une autre version de PHP avec le dépôt Sury
Ce détour ne se justifie que si vous visez une version que Debian ne fournit pas : PHP 8.5 sur Debian 13, ou PHP 8.2 sur une Debian 11. La méthode a changé : apt-key est supprimé depuis Debian 12, il faut passer par un porte-clés dédié.
sudo apt install -y curl ca-certificates
sudo curl -fsSLo /etc/apt/keyrings/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb [signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ $(. /etc/os-release && echo $VERSION_CODENAME) main" \
| sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
sudo apt install -y php8.5-cli php8.5-fpm php8.5-mbstring php8.5-xml php8.5-curl php8.5-zip php8.5-bcmath php8.5-intl php8.5-mysqlAvec plusieurs versions installées, choisissez celle qui répond à la commande php :
sudo update-alternatives --config phpIl faudra le maintenir : à chaque montée de version de Debian, vérifier que le dépôt suit, et surveiller les mises à jour de sécurité séparément. Si les dépôts officiels suffisent, restez dessus.
Erreurs fréquentes
systemctl reload php8.4-fpm.