Composer — это популярный инструмент управления зависимостями для PHP, созданный в основном для облегчения установки и обновления зависимостей проекта. Он проверяет, от каких пакетов зависит конкретный проект, и устанавливает их за вас, используя соответствующие версии в соответствии с требованиями проекта. Composer также часто используется для загрузки новых проектов, основанных на популярных PHP-фреймворках, таких как Symfony и Laravel.
В этом руководстве вы установите и начнете работу с Composer на системе Ubuntu 20.04.
Для установки вам понадобится доступ к серверу Ubuntu 20.04 в качестве пользователя sudo, не являющегося пользователем root, и включенный брандмауэр на вашем сервере. Чтобы настроить его, вы можете воспользоваться нашим руководством по первоначальной настройке сервера Ubuntu 20.04.
Установка PHP и дополнительных зависимостей
В дополнение к зависимостям, которые уже должны быть включены в вашу систему Ubuntu 20.04, таким как git и curl, Composer требует php-cli для выполнения PHP-скриптов в командной строке и unzip для извлечения заархивированных архивов. Сейчас мы установим эти зависимости.
Сначала обновите кэш менеджера пакетов, выполнив команду:
sudo apt update
Затем выполните следующую команду для установки необходимых пакетов:
sudo apt install php-cli unzip
Вам будет предложено подтвердить установку, набрав Y, а затем ENTER.
После установки предварительных условий можно приступать к установке Composer.
Загрузка и установка Composer
Composer предоставляет сценарий установки, написанный на PHP. Мы загрузим его, проверим, что он не поврежден, а затем используем его для установки Composer.
cd ~
curl -sS https://getcomposer.org/installer -o /tmp/composer-setup.php
Далее мы проверим, что загруженная программа установки соответствует хэшу SHA-384 для последней версии программы установки, найденному на странице публичных ключей/подписей Composer. Чтобы облегчить шаг проверки, вы можете использовать следующую команду, чтобы программно получить последний хэш со страницы Composer и сохранить его в переменной оболочки:
HASH=`curl -sS https://composer.github.io/installer.sig`
Если вы хотите проверить полученное значение, вы можете выполнить:
echo $HASH
Ожидаемый вывод:
906a84df04cea2aa72f40b5f787e49f22d4c2f19492ac310e8cba5b96ac8b64115ac402c8cd292b8a03482574915d1a8
Теперь выполните следующий PHP-код, представленный на странице загрузки Composer, чтобы убедиться, что сценарий установки безопасен для запуска:
php -r "if (hash_file('SHA384', '/tmp/composer-setup.php') === '$HASH') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Вы увидите следующий результат:
Installer verified
Если в результате появится сообщение Installer corrupt, вам нужно будет снова загрузить сценарий установки и дважды проверить, что вы используете правильный хэш. Затем повторите процесс проверки. Когда вы получите проверенный установщик, вы можете продолжить.
Чтобы установить composer глобально, используйте следующую команду, которая загрузит и установит Composer как общесистемную команду с именем composer в каталоге /usr/local/bin
:
sudo php /tmp/composer-setup.php --install-dir=/usr/local/bin --filename=composer
Вы увидите следующее сообщение:
All settings correct for using Composer
Downloading...
Composer (version 2.3.5) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer
Чтобы проверить свою установку, выполните
composer
Ожидаемый вывод:
______
/ ____/___ ____ ___ ____ ____ ________ _____
/ / / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__ ) __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
/_/
Composer version 2.3.5 2022-04-13 16:43:00
Usage:
command [options] [arguments]
Options:
-h, --help Display help for the given command. When no command is given display help for the list command
-q, --quiet Do not output any message
-V, --version Display this application version
--ansi|--no-ansi Force (or disable --no-ansi) ANSI output
-n, --no-interaction Do not ask any interactive question
--profile Display timing and memory usage information
--no-plugins Whether to disable plugins.
--no-scripts Skips the execution of all scripts defined in composer.json file.
-d, --working-dir=WORKING-DIR If specified, use the given directory as working directory.
--no-cache Prevent use of the cache
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
. . .
Это подтверждает, что Composer был успешно установлен в вашей системе и доступен глобально.