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.
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ébergement → Technologies web → Configuration 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
| Message | Cause | Solution |
|---|
allow_url_fopen must be enabled | L'option -d allow_url_fopen=On a été oubliée | Ajoutez-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 projet | Appelez le binaire de la bonne version, en reprenant le chemin ci-dessus |
Allowed memory size exhausted | Une résolution de dépendances volumineuse | Pré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 web → Configuration Apache → Répertoire de base du domaine.