Instalacja Composera na Debianie 13 z weryfikacją podpisu
zweryfikowano 2 września 2026 · 3 min
Pobierz program instalacyjny, porównaj jego skrót SHA-384 z tym opublikowanym na composer.github.io/installer.sig i uruchom go tylko wtedy, gdy oba są zgodne. Zainstaluj go w /usr/local/bin/composer, żeby był dostępny dla wszystkich użytkowników. Później nigdy nie używaj sudo composer install: uruchamiaj Composera z konta właściciela projektu.
Composer instaluje Laravela i cały zestaw jego zależności. Na Debianie pytanie nie brzmi tylko „jak go zainstalować”, ale „jak to zrobić bez uruchamiania pobranego skryptu w ciemno”: oficjalna procedura sprawdza skrót programu instalacyjnego, zanim go odpali.
Kroki wykonane na Debianie 13 „trixie” 2 września 2026 roku, z PHP 8.4.24. Ten rozdział wpisuje się w instalację Laravela na Debianie, w ścieżce Programowanie webowe.
Wymagania wstępne
Composer to program w PHP: najpierw potrzebujesz PHP w wierszu poleceń.
php -v
sudo apt install -y php-cli unzip curl ca-certificatesunzip nie jest ozdobą: bez niego Composer rozpakowuje archiwa w PHP, znacznie wolniej.
Instalacja Composera z weryfikacją podpisu
Cztery polecenia, w tej kolejności. Liczy się trzecie: porównuje skrót pobranego pliku ze skrótem opublikowanym przez projekt.
# 1. wzorcowy skrót, publikowany przez projekt Composer
EXPECTED="$(curl -sS https://composer.github.io/installer.sig)"
# 2. program instalacyjny
curl -sS https://getcomposer.org/installer -o composer-setup.php
# 3. skrót otrzymanego pliku
ACTUAL="$(php -r 'echo hash_file("sha384", "composer-setup.php");')"
# 4. nie uruchamiamy niczego, jeśli oba się różnią
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
fiNa instalacji testowej oba skróty się zgadzają:
attendue : c8b085408188070d5f52bcfe4ecfbee5f727afa458b2573b8eaaf77b3419b0bf2768dc67c86944da1544f06fa544fd47
obtenue : c8b085408188070d5f52bcfe4ecfbee5f727afa458b2573b8eaaf77b3419b0bf2768dc67c86944da1544f06fa544fd47
→ signature valideBez niego uruchamiasz z uprawnieniami sudo skrypt PHP pobrany z sieci, bez żadnej gwarancji co do jego zawartości. Właśnie dlatego oficjalna dokumentacja publikuje wzorcowy skrót. Poradniki, które składają curl i php composer-setup.php bez porównania, pomijają jedyne dostępne zabezpieczenie.
Sprawdź wynik:
composer --versionComposer version 2.10.3 2026-08-27 13:34:23
PHP version 8.4.24 (/usr/bin/php8.4)Umieszczenie pliku w /usr/local/bin pod nazwą composer udostępnia polecenie wszystkim użytkownikom serwera, bez grzebania w PATH.
A co z pakietem Debiana?
Debian ma pakiet composer. Działa, ale idzie w rytmie dystrybucji: wersja z repozytoriów prawie zawsze jest w tyle za bieżącą. Ponieważ Composer aktualizuje się sam jednym poleceniem, na serwerze aplikacyjnym instalacja ręczna pozostaje lepszym wyborem.
sudo composer self-update # najnowsza stabilna wersja
sudo composer self-update --rollback # powrót do poprzedniejNie uruchamiaj Composera jako root
Instalowanie binarki przez sudo jest normalne. Używanie jej przez sudo już nie.
# do uniknięcia
sudo composer install
# poprawnie: użytkownik będący właścicielem projektu
su - deploy
cd /var/www/mon-projet
composer install --no-dev --optimize-autoloaderNa maszynie z macOS problem wygląda inaczej i najczęściej objawia się jako nieznalezione polecenie laravel.
Powody są dwa. Skrypty post-install zależności wykonują się z uprawnieniami, które im dasz, więc sudo composer install to uruchomienie cudzego kodu na koncie roota. Do tego utworzone pliki należą wtedy do root, co wywołuje błędy zapisu, gdy tylko serwer WWW spróbuje pisać do storage/.
Composer zresztą sam ostrzega, gdy uruchamiasz go jako root bez COMPOSER_ALLOW_SUPERUSER.
Przydatne opcje na produkcji
composer install --no-dev --optimize-autoloader --no-interaction| Opcja | Efekt |
|---|---|
--no-dev | pomija zależności deweloperskie (testy, narzędzia do debugowania) |
--optimize-autoloader | generuje statyczną tablicę klas, szybszą przy ładowaniu |
--no-interaction | żadnych pytań, niezbędne przy automatycznym wdrożeniu |
Zawsze wdrażaj plik composer.lock razem z projektem i uruchamiaj composer install, a nie composer update: pierwsze polecenie instaluje dokładnie wersje z blokady, drugie przelicza je od nowa i może wprowadzić nieprzetestowane zmiany w środku wdrożenia.
Częste błędy
composer install na podstawie composer.lock.