PHP en zijn extensies installeren op Debian 13 voor Laravel
geverifieerd op 2 september 2026 · 4 min
Debian 13 levert PHP 8.4 in zijn officiële repository's: sudo apt install php-cli php-fpm php-mbstring php-xml php-curl php-zip php-bcmath php-intl php-mysql volstaat voor Laravel 13, zonder externe repository. Let op twee pakketten die vaak ten onrechte worden genoemd: php-json dient nergens meer toe sinds PHP 8.0, en je hebt php-mysql nodig, niet php-mysqli, want Laravel gaat via PDO.
Laravel 13 vraagt minimaal PHP 8.2 en een handvol extensies. Goed nieuws: Debian 13 “trixie” levert PHP 8.4 in zijn officiële repository’s, waardoor de externe repository Sury in het gangbare geval overbodig is.
Stappen uitgevoerd op een verse Debian 13-container, op 2 september 2026. Dit hoofdstuk hoort bij de installatie van Laravel op Debian, in het traject Webontwikkeling.
Nagaan wat je Debian zelf al biedt
Kijk eerst wat de distributie levert, voordat je ook maar één repository toevoegt:
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 is beschikbaar. Ruim voldoende voor Laravel 13, en het scheelt je een externe repository die je moet onderhouden. Welke PHP-versie bij welke Debian hoort:
| Debian | PHP uit de officiële repository’s | Genoeg voor Laravel 13? |
|---|---|---|
| 13 “trixie” | 8.4 | Ja |
| 12 “bookworm” | 8.2 | Ja, precies het vereiste minimum |
| 11 “bullseye” | 7.4 | Nee, externe repository nodig |
PHP en de extensies installeren
Eén commando dekt de basis die Laravel vraagt, plus de databasedrivers:
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-certificatesTwee veelgebruikte extensies staan niet in die lijst, omdat ze van je architectuurkeuzes afhangen: php-redis, behandeld in het hoofdstuk over Redis, en php-gd of php-imagick voor beeldbewerking.
Controleer welke versie je hebt gekregen:
php -vPHP 8.4.24 (cli) (built: Jul 31 2026 05:11:11) (NTS)Kijk daarna na of alle extensies die Laravel verwacht ook echt antwoorden:
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)"
doneOp de testinstallatie geven alle zestien regels OK. Een deel van die extensies zit ingebouwd in het PHP-binary van Debian en heeft geen eigen pakket: ze duiken toch op in php -m.
Twee pakketten die vaak ten onrechte worden genoemd
Sinds PHP 8.0 zit de JSON-extensie in het binary ingebouwd en is ze niet meer uit te schakelen. Het pakket php-json blijft in Debian bestaan als eenvoudig overgangspakket. Het installeren breekt niets, maar levert ook niets op.
Laravel gaat via PDO, niet via mysqli. Je hebt php-mysql nodig, en dat levert er allebei. Kijk na wat PHP werkelijk ziet:
php -r 'echo implode(", ", PDO::getAvailableDrivers()), PHP_EOL;'mysql, sqliteStaat mysql niet in die lijst, dan krijgt Laravel geen verbinding met MySQL of MariaDB, wat er ook in het bestand .env staat.
PHP instellen voor een webapplicatie
Er staan twee bestanden naast elkaar, met verschillende waarden: dat van de commandoregel en dat van de webserver. Het verkeerde aanpassen is een klassieke bron van verwarring.
/etc/php/8.4/cli/php.ini # artisan, composer, geplande taken
/etc/php/8.4/fpm/php.ini # aanvragen die nginx of Apache bedientDe instellingen die voor een Laravel-applicatie tellen, staan in het FPM-bestand:
memory_limit = 256M
upload_max_filesize = 20M
post_max_size = 21M
max_execution_time = 60post_max_size moet boven upload_max_filesize blijven, anders wordt een upload op de maximale grootte geweigerd voordat hij de applicatie bereikt. Herlaad daarna de service, want zonder dat blijven de waarden ongewijzigd:
sudo systemctl reload php8.4-fpm
php -i | grep memory_limit # CLI-waarde
sudo -u www-data php-fpm8.4 -i | grep memory_limitNu PHP staat, is het installeren van Composer de volgende stap.
Een andere PHP-versie installeren met de Sury-repository
Die omweg is alleen te verdedigen als je een versie wilt die Debian niet levert: PHP 8.5 op Debian 13, of PHP 8.2 op een Debian 11. De methode is veranderd: apt-key bestaat niet meer sinds Debian 12, je moet met een aparte keyring werken.
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-mysqlHeb je meerdere versies geïnstalleerd, kies dan welke op het commando php antwoordt:
sudo update-alternatives --config phpJe moet hem onderhouden: bij elke Debian-upgrade nagaan of de repository meegaat, en de beveiligingsupdates apart in de gaten houden. Volstaan de officiële repository’s, blijf daar dan bij.
Veelgemaakte fouten
systemctl reload php8.4-fpm.