Composer installeren op Debian 13, met signatuurcontrole
geverifieerd op 2 september 2026 · 3 min
Download het installatieprogramma, vergelijk de SHA-384-vingerafdruk met die op composer.github.io/installer.sig, en voer het alleen uit als beide overeenkomen. Installeer hem in /usr/local/bin/composer zodat alle gebruikers hem hebben. Gebruik daarna nooit sudo composer install: draai Composer met het account dat eigenaar van het project is.
Composer installeert Laravel en al zijn dependencies. Op Debian is de vraag niet alleen hoe je hem installeert, maar hoe je dat doet zonder een gedownload script blind uit te voeren: de officiële procedure controleert de vingerafdruk van het installatieprogramma voordat je het start.
Stappen uitgevoerd op Debian 13 “trixie” op 2 september 2026, met PHP 8.4.24. Dit hoofdstuk hoort bij de installatie van Laravel op Debian, in het traject Webontwikkeling.
Wat je vooraf nodig hebt
Composer is een PHP-programma: je hebt eerst PHP op de commandoregel nodig.
php -v
sudo apt install -y php-cli unzip curl ca-certificatesunzip is geen versiering: zonder dat pakket pakt Composer de archieven in PHP uit, en dat gaat veel trager.
Composer installeren met signatuurcontrole
Vier commando’s, in deze volgorde. Het derde is het commando dat telt: het vergelijkt de vingerafdruk van het gedownloade bestand met die van het project.
# 1. de referentievingerafdruk, gepubliceerd door het Composer-project
EXPECTED="$(curl -sS https://composer.github.io/installer.sig)"
# 2. het installatieprogramma
curl -sS https://getcomposer.org/installer -o composer-setup.php
# 3. de vingerafdruk van het ontvangen bestand
ACTUAL="$(php -r 'echo hash_file("sha384", "composer-setup.php");')"
# 4. we starten niets als de twee verschillen
if [ "$EXPECTED" = "$ACTUAL" ]; then
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
rm composer-setup.php
else
>&2 echo "Signature invalide : téléchargement corrompu ou altéré."
rm composer-setup.php
exit 1
fiOp de testinstallatie komen beide vingerafdrukken overeen:
attendue : c8b085408188070d5f52bcfe4ecfbee5f727afa458b2573b8eaaf77b3419b0bf2768dc67c86944da1544f06fa544fd47
obtenue : c8b085408188070d5f52bcfe4ecfbee5f727afa458b2573b8eaaf77b3419b0bf2768dc67c86944da1544f06fa544fd47
→ signature valideZonder die controle voer je met sudo-rechten een PHP-script uit dat je van het netwerk hebt gehaald, zonder enige garantie over de inhoud. Daarom publiceert de officiële documentatie een referentievingerafdruk. Tutorials die curl en daarna php composer-setup.php aan elkaar plakken zonder te vergelijken, slaan de enige beschikbare bescherming over.
Controleer het resultaat:
composer --versionComposer version 2.10.3 2026-08-27 13:34:23
PHP version 8.4.24 (/usr/bin/php8.4)Door hem in /usr/local/bin onder de naam composer te zetten, is het commando voor alle gebruikers van de server beschikbaar, zonder aan PATH te sleutelen.
En het Debian-pakket dan?
Debian levert een pakket composer. Dat werkt, maar het volgt het ritme van de distributie: de versie uit de repository loopt vrijwel altijd achter op de actuele versie. Omdat Composer zichzelf met één commando bijwerkt, blijft de handmatige installatie op een applicatieserver de betere keuze.
sudo composer self-update # laatste stabiele versie
sudo composer self-update --rollback # terug naar de vorigeComposer niet als root draaien
Het binary met sudo installeren is normaal. Het met sudo gebruiken niet.
# te vermijden
sudo composer install
# correct: de gebruiker die eigenaar van het project is
su - deploy
cd /var/www/mon-projet
composer install --no-dev --optimize-autoloaderOp een macOS-machine speelt het probleem anders en komt het er vaak op neer dat het commando laravel niet gevonden wordt.
Twee redenen. De post-install-scripts van de dependencies draaien met de rechten die jij ze geeft, waardoor sudo composer install neerkomt op het uitvoeren van code van derden als root. En de aangemaakte bestanden zijn dan eigendom van root, wat schrijffouten oplevert zodra de webserver in storage/ probeert te schrijven.
Composer waarschuwt trouwens zelf wanneer hij als root wordt gestart zonder COMPOSER_ALLOW_SUPERUSER.
Handige opties in productie
composer install --no-dev --optimize-autoloader --no-interaction| Optie | Effect |
|---|---|
--no-dev | slaat de ontwikkeldependencies over (tests, debugtools) |
--optimize-autoloader | genereert een statische klassentabel, sneller bij het laden |
--no-interaction | stelt geen enkele vraag, onmisbaar bij geautomatiseerde deployments |
Zet het bestand composer.lock altijd mee in de deployment, en draai composer install en niet composer update: het eerste commando installeert precies de versies uit de lock, het tweede rekent ze opnieuw uit en kan midden in een release ongeteste wijzigingen binnenhalen.
Veelgemaakte fouten
composer install op basis van de composer.lock.