Composer — это менеджер зависимостей для PHP. Он позволяет указывать, какие библиотеки нужны вашему проекту, автоматически скачивает их (из репозитория Packagist) и настраивает автозагрузку. Composer используется практически во всех современных PHP-проектах: Laravel, Symfony, Drupal, Magento и многих других.
В этом руководстве я покажу два способа установки Composer на Debian:
- APT — из официальных репозиториев Debian (проще всего, но версия зависит от релиза)
- Официальный установщик — с сайта 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 для быстрых загрузок через HTTPca-certificates— сертификаты для HTTPSunzip— для распаковки 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-фреймворки.
Что дальше?
- Изучите официальную документацию Composer
- Установите Git для контроля версий
- Настройте веб-сервер для PHP-проектов
- Установите Node.js и NPM, если ваш проект использует фронтенд-сборку