[Hébergement] Installer et utiliser Composer en SSH

Composer, le gestionnaire de dépendances de PHP, s'utilise depuis votre accès SSH. Le seul point à connaître : il faut l'appeler avec le binaire PHP de la version voulue, et non avec la commande php par défaut.

Prérequis : l'accès SSH doit être activé pour votre hébergement. Voir Se connecter à son compte en SSH.

Le chemin du binaire PHP

Nos serveurs tournent sous CloudLinux, où chaque version de PHP dispose de son propre exécutable :

/opt/alt/php<version>/usr/bin/php

Le numéro de version s'écrit sans point. Pour PHP 8.5 :

/opt/alt/php85/usr/bin/php --version

Utilisez de préférence la même version que celle sélectionnée pour votre site dans Gestion de l'hébergementTechnologies webConfiguration PHP : vous éviterez qu'une dépendance installée en ligne de commande soit incompatible avec le PHP qui exécute réellement le site.

Installer Composer

Placez-vous dans le répertoire du site concerné, puis récupérez l'installeur :

cd ~/exemple.ch
wget https://getcomposer.org/installer -O composer-setup.php
/opt/alt/php85/usr/bin/php -d allow_url_fopen=On composer-setup.php
rm composer-setup.php

L'option -d allow_url_fopen=On est nécessaire : l'installeur télécharge composer.phar et cette directive est désactivée par défaut sur nos serveurs.

Vous obtenez un fichier composer.phar dans le répertoire courant.

Utiliser Composer

/opt/alt/php85/usr/bin/php -d allow_url_fopen=On composer.phar install
/opt/alt/php85/usr/bin/php -d allow_url_fopen=On composer.phar require monvendor/monpaquet
/opt/alt/php85/usr/bin/php -d allow_url_fopen=On composer.phar update

Raccourcir la commande

Pour ne pas retaper le chemin complet, définissez un alias dans votre session :

alias composer='/opt/alt/php85/usr/bin/php -d allow_url_fopen=On ~/exemple.ch/composer.phar'

L'alias disparaît à la déconnexion. Pour le conserver, ajoutez la même ligne à la fin de votre fichier ~/.bashrc.

Problèmes fréquents

MessageCauseSolution
allow_url_fopen must be enabledL'option -d allow_url_fopen=On a été oubliéeAjoutez-la à la commande
requires php ^8.x but your php version is ...Composer a été lancé avec une autre version de PHP que celle attendue par le projetAppelez le binaire de la bonne version, en reprenant le chemin ci-dessus
Allowed memory size exhaustedUne résolution de dépendances volumineusePréfixez la commande de COMPOSER_MEMORY_LIMIT=-1, ou utilisez le bouton Booster la mémoire de la Configuration PHP
Ne laissez pas composer.phar, composer.json et le dossier vendor/ accessibles depuis le web. Si la racine de votre site est le répertoire du domaine lui-même, protégez-les — ou mieux, faites pointer la racine du site sur le sous-répertoire public de votre application, via Site webConfiguration ApacheRépertoire de base du domaine.