Когда нужен Composer через PHP 8.4
В ISPManager 6 на одном сервере может быть установлено несколько версий PHP. В таких конфигурациях Composer не всегда должен запускаться через системный PHP: проект может требовать PHP 8.4, а версия по умолчанию в консоли может отличаться от версии сайта.
Ниже показана установка Composer и два способа закрепить запуск через PHP 8.4: только для конкретного пользователя или отдельной глобальной командой.
Установка Composer от root-пользователя
Подключитесь к серверу под root-пользователем и установите Composer стандартным способом:
php -r "copy(\"https://getcomposer.org/installer\", \"composer-setup.php\");"
php composer-setup.php
php -r "unlink(\"composer-setup.php\");"
chmod +x composer.phar
mv composer.phar /usr/local/bin/composerПосле этого Composer будет доступен глобально:
composerComposer через PHP 8.4 для одного пользователя
Если Composer должен использовать PHP 8.4 только у одного пользователя, войдите на сервер под этим пользователем и создайте директорию для пользовательских исполняемых файлов:
mkdir -p ~/binСоздайте файл ~/bin/php:
touch ~/bin/phpДобавьте в него wrapper для PHP 8.4:
#!/bin/sh
PHP_EXEC="/opt/php84/bin/php -c /var/www/USERNAME/data/php-bin-isp-php84"
$PHP_EXEC "$@"Сделайте файл исполняемым:
chmod +x ~/bin/phpДобавьте ~/bin в начало переменной окружения PATH, чтобы пользовательский php использовался раньше системного:
echo "export PATH=$HOME/bin:$PATH" >> ~/.bash_profile
source ~/.bash_profileПроверьте, какая версия PHP теперь используется:
php -vПосле этого Composer, запущенный от имени этого пользователя, будет работать через PHP 8.4.
Отдельная команда composer84 для всех пользователей
Если нужна отдельная команда, которая всегда запускает Composer через PHP 8.4, создайте исполняемый файл в /usr/local/bin:
touch /usr/local/bin/composer84Добавьте в файл /usr/local/bin/composer84 следующий код:
#!/bin/bash
env PATH="/opt/php84/bin:$PATH" php /usr/local/bin/composer "$@"Сделайте команду исполняемой:
chmod +x /usr/local/bin/composer84Теперь Composer через PHP 8.4 можно запускать так:
composer84 install
composer84 update
composer84 require vendor/packageПо той же схеме можно создать команды composer82, composer83 или composer84, меняя путь к нужному PHP-бинарнику.
Итог
В ISPManager 6 Composer можно установить глобально, а затем настроить запуск через нужную версию PHP. Для одного пользователя удобен wrapper ~/bin/php. Для общей команды лучше создать отдельный исполняемый файл, например composer84.