Установка Composer на Debian 13, 12, 11: полное руководство

Composer — это менеджер зависимостей для PHP. Он позволяет указывать, какие библиотеки нужны вашему проекту, автоматически скачивает их (из репозитория Packagist) и настраивает автозагрузку. Composer используется практически во всех современных PHP-проектах: Laravel, Symfony, Drupal, Magento и многих других.

В этом руководстве я покажу два способа установки Composer на Debian:

  1. APT — из официальных репозиториев Debian (проще всего, но версия зависит от релиза)
  2. Официальный установщик — с сайта getcomposer.org (свежая версия, обновляется через self-update)
МетодКаналВерсияОбновленияДля кого
APTРепозитории
Debian
Debian 13: 2.8.x;
Debian 12: 2.5.x;
Debian 11: 2.0.x
Через apt upgradeБольшинство
пользователей,
кому не нужна
новейшая версия
Официальный
установщик
getcomposer.orgПоследняя (2.9.x)composer self-updateПроекты,
требующие
актуальную
версию
Composer

⚠️ Важно: Используйте только один способ установки. Если вы установите оба, ручная установка в /usr/local/bin/composer переопределит пакетную в /usr/bin/composer, и будет путаница с обновлениями и удалением.


Оглавление

Предварительные требования

Перед установкой Composer убедитесь, что:

  • Установлен PHP (версия 7.2.5 или новее). Если нет — сначала установите PHP на Debian.
  • Вы имеете права sudo (администратора)

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.

Ожидаемый вывод в терминале:

root

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.


Установка зависимостей (для обоих способов)

Некоторые пакеты могут отсутствовать на минимальных серверных установках.

sudo apt update
sudo apt install -y php-cli php-curl ca-certificates unzip curl git

Что делает:

  • php-cli — интерпретатор PHP для командной строки (нужен Composer)
  • php-curl — расширение PHP для быстрых загрузок через HTTP
  • ca-certificates — сертификаты для HTTPS
  • unzip — для распаковки zip-архивов
  • curl — командная утилита для скачивания файлов
  • git — система контроля версий (некоторые пакеты требуют)

Способ 1: Установка Composer из APT (рекомендуемый для начинающих)

Этот способ самый простой — одна команда, и Composer будет обновляться вместе с системой.

sudo apt install -y composer

Что делает: Устанавливает пакет composer из официальных репозиториев Debian.

Проверка установки

composer --version

Ожидаемый вывод (зависит от версии Debian):

  • Debian 13: Composer version 2.8.8 2025-04-04 16:56:46
  • Debian 12: Composer version 2.5.5
  • Debian 11: Composer version 2.0.9

⚠️ Важно: В версиях Composer, установленных через APT, команда self-update не работает. Обновляйте Composer только через системный менеджер пакетов:

sudo apt update
sudo apt install --only-upgrade composer -y

Способ 2: Установка Composer через официальный установщик

Этот способ даёт самую свежую версию Composer. Подходит, если ваш проект требует новую версию, а в Debian она ещё не появилась.

Шаг 1: Скачайте установщик

curl -sS https://getcomposer.org/installer -o composer-setup.php

Что делает: Скачивает скрипт установщика Composer и сохраняет его как composer-setup.php.

Шаг 2: Проверьте подпись установщика (обязательный шаг безопасности!)

Composer публикует контрольную сумму (SHA-384) свежего установщика. Сравните её со скачанным файлом, чтобы убедиться, что файл не был подменён.

HASH="$(curl -sS https://composer.github.io/installer.sig)"
php -r "if (hash_file('sha384', 'composer-setup.php') === '$HASH') { echo 'Installer verified' . PHP_EOL; } else { echo 'Installer corrupt' . PHP_EOL; unlink('composer-setup.php'); exit(1); }"

Что делает:

  • Сохраняет официальную подпись в переменную HASH
  • Вычисляет SHA-384 от скачанного файла
  • Если они совпадают — выводит Installer verified
  • Если нет — удаляет файл и завершается с ошибкой

Ожидаемый вывод: Installer verified

⚠️ Никогда не пропускайте этот шаг! Это защита от подмены файла на небезопасный.

Шаг 3: Установите Composer глобально

sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

Что делает:

  • --install-dir=/usr/local/bin — устанавливает в системную директорию (доступную всем пользователям)
  • --filename=composer — задаёт имя исполняемого файла

Ожидаемый вывод:

All settings correct for using Composer
Downloading...

Composer (version 2.9.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Шаг 4: Удалите установщик

rm composer-setup.php

Что делает: Удаляет временный файл установщика — он больше не нужен.

Шаг 5: Проверьте установку

composer --version

Ожидаемый вывод: Composer version 2.9.5 2026-01-29 11:40:53


Первые шаги с Composer

Создайте тестовый проект

Давайте проверим, что Composer работает и умеет скачивать пакеты. Это поможет убедиться, что всё настроено правильно.

mkdir composer-demo
cd composer-demo
composer init --name=test/demo --require=monolog/monolog:^2.10 --no-interaction
composer install --no-interaction

Что делает:

  • composer init — создаёт файл composer.json с минимальными настройками (--no-interaction — без вопросов)
  • --require — добавляет зависимость monolog/monolog (библиотека для логирования)
  • composer install — скачивает зависимости в папку vendor/

Проверьте, что пакет установлен

composer show monolog/monolog

Ожидаемый вывод (частично):

name     : monolog/monolog
descrip. : Sends your logs to files, sockets, inboxes, databases and various web services
versions : * 2.11.0

Установка зависимостей из существующего проекта

Когда вы клонируете существующий проект, в нём уже есть composer.json и composer.lock. Для установки зависимостей достаточно:

composer install --no-interaction

Что делает: Скачивает точные версии пакетов, зафиксированные в composer.lock.


Основные команды Composer

КомандаЧто делает
composer require vendor/packageДобавляет пакет в composer.json и
устанавливает его
composer require --dev vendor/packageДобавляет пакет как разработческую
зависимость (не нужен в продакшене)
composer update vendor/packageОбновляет конкретный пакет до последней
версии (с учётом ограничений в
composer.json)
composer updateОбновляет все пакеты
composer remove vendor/packageУдаляет пакет из composer.json и
деинсталлирует его
composer showПоказывает список установленных пакетов
composer outdatedПоказывает, какие пакеты устарели
composer diagnoseДиагностирует проблемы в установке
Composer

Обновление Composer

Обновление APT-версии

sudo apt update
sudo apt install --only-upgrade composer -y

Обновление версии, установленной через официальный установщик

sudo composer self-update

Что делает: Обновляет сам Composer до последней версии.


Удаление Composer

Удаление APT-версии

sudo apt remove composer -y

Удаление версии, установленной через официальный установщик

sudo rm -f /usr/local/bin/composer
rm -rf ~/.config/composer ~/.cache/composer ~/.local/share/composer

Что делает: Удаляет глобальный бинарный файл и пользовательские данные Composer (кэш, настройки).

Проверка удаления

command -v composer || echo "composer not found"

Ожидаемый вывод: composer not found


Решение типичных проблем

8.1 Ошибка: composer: command not found

Симптом: После установки команда composer не работает:

bash: composer: command not found

Причина: Composer не установлен или директория с ним не добавлена в PATH.

Пошаговое решение:

Шаг 1: Проверьте, установлен ли вообще Composer:

ls -la /usr/bin/composer /usr/local/bin/composer 2>/dev/null

Шаг 2: Если вы устанавливали через APT, но команда не работает — переустановите:

sudo apt install --reinstall composer -y

Шаг 3: Если вы устанавливали вручную, но файл на месте — проверьте PATH:

echo $PATH | grep -q /usr/local/bin && echo "in PATH" || echo "not in PATH"

Шаг 4: Если /usr/local/bin отсутствует в PATH, добавьте его в ~/.bashrc:

echo 'export PATH="$PATH:/usr/local/bin"' >> ~/.bashrc
source ~/.bashrc

8.2 Ошибка: Command «self-update» is not defined

Симптом: При попытке обновить Composer через composer self-update появляется ошибка:

Command "self-update" is not defined.

Причина: Вы установили Composer через APT. В Debian-пакете эта команда отключена.

Пошаговое решение:

Шаг 1: Узнайте, откуда установлен Composer:

which composer

Шаг 2: Если путь /usr/bin/composer — это APT-версия. Обновляйте через APT:

sudo apt update
sudo apt install --only-upgrade composer -y

Шаг 3: Если вы хотите пользоваться self-update — удалите APT-версию и установите Composer через официальный установщик.


8.3 Ошибка: Неверная подпись установщика

Симптом: При проверке подписи установщика получаем:

Installer corrupt

Причина: Файл composer-setup.php был изменён (или при загрузке произошла ошибка).

Пошаговое решение:

Шаг 1: Удалите испорченный файл:

rm -f composer-setup.php

Шаг 2: Скачайте установщик заново:

curl -sS https://getcomposer.org/installer -o composer-setup.php

Шаг 3: Повторите проверку подписи:

HASH="$(curl -sS https://composer.github.io/installer.sig)"
php -r "if (hash_file('sha384', 'composer-setup.php') === '$HASH') { echo 'Installer verified' . PHP_EOL; } else { echo 'Installer corrupt' . PHP_EOL; unlink('composer-setup.php'); exit(1); }"

Шаг 4: Если ошибка повторяется — возможно, проблема в сети или на стороне сервера Composer. Попробуйте позже.


8.4 Ошибка: missing PHP extensions

Симптом: Composer работает медленно или выводит предупреждения:

The composer-x, ext-curl, ext-mbstring, ext-xml extensions are missing

Причина: Отсутствуют необходимые расширения PHP, что снижает производительность и может вызывать ошибки у некоторых пакетов.

Пошаговое решение:

Шаг 1: Установите недостающие расширения:

sudo apt install -y php-curl php-xml php-mbstring

Шаг 2: Перезапустите веб-сервер (если он используется):

sudo systemctl restart apache2   # для Apache
# или
sudo systemctl restart php8.4-fpm # для Nginx с PHP-FPM

Пояснение: В команде перезапуска PHP-FPM указана версия php8.4-fpm:
В Debian 12 используется PHP 8.2 (сервис php8.2-fpm), на Debian 11 — PHP 7.4 (сервис php7.4-fpm). Команда php8.4-fpm сработает только на Debian 13.
Это не ошибка — используйте версию соответствующую вашей системе Debian
В текущем виде инструкция рабочая для Debian 13

Если хотите более универсальное решение то есть такая команда:

sudo systemctl restart php$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')-fpm

Шаг 3: Проверьте, что расширения загружены:

php -m | grep -E 'curl|mbstring|xml'

Ожидаемый вывод: curl, mbstring, xml, xmlreader, xmlwriter.


8.5 Ошибка: Composer не может записать в директорию

Симптом: При попытке установить пакет появляется ошибка:

Failed to write file: Permission denied

Причина: Вы запускаете composer от root или у файлов настроек неправильные права.

Пошаговое решение:

Шаг 1: Никогда не запускайте обычные команды Composer от root (кроме self-update для ручной установки). Всегда используйте обычного пользователя.

Шаг 2: Если вы случайно запустили Composer от root и файлы в vendor/ принадлежат root, удалите их:

sudo rm -rf vendor composer.lock

Шаг 3: Повторите установку от обычного пользователя:

composer install

Шаг 4: Если проблема с правами в домашней директории, проверьте владельца:

ls -la ~/.config/composer

При необходимости верните права своему пользователю:

sudo chown -R $USER:$USER ~/.config/composer ~/.cache/composer ~/.local/share/composer

Чек-лист: что проверить после установки

  • [ ] Composer установлен: composer --version показывает версию (не command not found)
  • [️] Проверка подписи пройдена (при ручной установке — было Installer verified)
  • [ ] Можно установить пакет: composer require monolog/monolog выполняется без ошибок
  • [ ] Создаются файлы: после установки пакета появились composer.json и composer.lock
  • [ ] Нет ошибок с правами: все файлы в vendor/ принадлежат вашему пользователю
  • [ ] Расширения PHP установлены: php -m | grep -E 'curl|mbstring|xml'

Часто задаваемые вопросы (FAQ)

Вопрос: Какой способ установки выбрать: APT или официальный установщик?
Ответ: Если вам не нужна новейшая версия Composer — используйте APT. Он проще в обслуживании (обновляется через системные обновления). Если ваш проект требует свежую версию (например, Laravel 11 требует Composer 2.5+) — используйте официальный установщик.

Вопрос: Можно ли установить Composer без PHP?
Ответ: Нет, Composer написан на PHP и требует PHP CLI для работы.

Вопрос: Нужно ли устанавливать веб-сервер (Apache/Nginx) перед Composer?
Ответ: Нет, Composer работает через командную строку (PHP CLI). Веб-сервер нужен только для запуска самого PHP-приложения.

Вопрос: Как обновить Composer, установленный через APT?
Ответ: sudo apt update && sudo apt install --only-upgrade composer -y

Вопрос: Как обновить Composer, установленный вручную?
Ответ: sudo composer self-update

Вопрос: Что такое composer.lock и нужно ли его коммитить в Git?
Ответ: composer.lock фиксирует точные версии всех установленных пакетов. Его нужно коммитить, чтобы на всех машинах (разработка, продакшен) использовались одни и те же версии.

Вопрос: Почему я получаю предупреждение о запуске от root?
Ответ: Composer рекомендует не запускать команды от root, потому что он может менять файлы в проекте. Все команды (install, require, update, remove) запускайте от обычного пользователя. Исключение — sudo composer self-update (для ручной установки) и установка Composer глобально.


Заключение

Теперь Composer установлен на вашем Debian. Вы можете управлять зависимостями PHP-проектов, скачивать библиотеки из Packagist и использовать современные PHP-фреймворки.

Что дальше?