0 %
Official PHP Logo image/svg+xml Official PHP Logo Colin Viebrock Copyright Colin Viebrock 1997 - All rights reserved. 1997

PHP : Composer (sous OpenBSD)

Article publié, le et modifié le
3 minutes de lecture

Cet article contient 572 mots.
Source brute de l'article :
Commit version : 5c2db07

Description

Je ne présenterais ni PHP, ni composer

Installation

pkg_add -v composer

Après l’installation de Composer, faites une mise à jour de lui-même : composer self-update

Configuration

De même, je ne détaillerais pas la configuration ni de PHP, ni de Composer, d’autant que par défaut pour ce dernier, il n’y a rien à faire en soit - il est bien sûr possible de configurer certaines options…

Diagnostic

Pour finir, on exécute ensuite un petit diagnostic :

$ composer diagnose
Checking platform settings: OK
Checking git settings: OK git version 2.46.1
Checking http connectivity to packagist: OK
Checking https connectivity to packagist: OK
Checking github.com rate limit: OK
Checking disk free space: OK
Checking pubkeys:
Tags Public Key Fingerprint: 57815BA2 7E54DC31 7ECC7CC5 573090D0  87719BA6 8F3BB723 4E5D42D0 84A14642
Dev Public Key Fingerprint: 4AC45767 E5EC2265 2F0C1167 CBBB8A2B  0C708369 153E328C AD90147D AFE50952
OK
Checking Composer version: OK
Checking Composer and its dependencies for vulnerabilities: OK
Composer version: 2.8.6
PHP version: 8.2.28
PHP binary path: /usr/local/bin/php-8.2
OpenSSL version: LibreSSL 4.0.0
curl version: 8.12.0 libz 1.3.1.1-motley ssl LibreSSL/4.0.0
zip: extension present, unzip present, 7-Zip not available

Tous les voyants sont OK, Composer a la dernière version en cours, et il s’exécute bien avec la version de PHP désirée

Dépannage

PHP 7

Pour information, par défaut, Composer est configuré pour être exécuté avec php-7.0 sous la 6.4, et php-7.1 sous 6.5 - qu’il installe en dépendances (avec femail*)

Le problème qui se pose est que si vous utilisez php-7.2, voire php-7.3, Composer s’exécutera avec l’environnement PHP pour lequel il est paramétré par défaut - logique, vous me direz !

Alors, comment le contraindre ?

Très facilement : # sed -i -e "s/php-7.x/php-7.y/" "$(which composer)" où :

  • 7.x est votre installation PHP par défaut,
  • et 7.y la version de PHP que vous préférez utiliser, telle que 7.2, par exemple…

Error: Do not run Composer as root/super user

Et, oui, il n’est pas recommandé d'exécuter Composer avec des droits d'administrateurs - alors ne le faites pas !

Plus d’informations, sur : https://getcomposer.org/root

Error: Missing pubkey for…

Il est possible que lors du diagnostique, vous vous retrouvez avec ce message d’erreur sur fond rouge :

Checking pubkeys: FAIL
Missing pubkey for tags verification
Missing pubkey for dev verification
Run composer self-update --update-keys to set them up

Il vous dit quoi faire !!!

Donc :

$ composer self-update --update-keys
Open https://composer.github.io/pubkeys.html to find the latest keys
Enter Dev / Snapshot Public Key (including lines with -----):

Là, le shell reste en attente jusqu’à ce que vous lui copiez la clé demandée, que vous trouverez sur https://composer.github.io/pubkeys.html, puisqu’il a même la gentillesse de vous le dire !

Il vous demande de rentrer dans un premier temps, la clé Dev / Snapshot Public, puis une fois validée, vous demandera d’intégrer la clé Tags Public. Et pour finir vous dira dans quel répertoire personnel, elles seront enregistrées.

Si l’entrée saisie n’est pas correcte, vous aurez un message d’erreur : Invalid input, il vous sera redemandé de faire la saisie !

Error: curl version: missing…

Si le test se plaint que la version de curl est manquante, tel que :

curl version: missing, using php streams fallback, which reduces performance

Vérifiez si vous avez installé le paquet php-curl correspondant à votre version de PHP, et que vous avez bien lié le binaire dans le répertoire correspondant à votre version de PHP, tel que (par exemple) :

doas ln -sf /etc/php-8.2.sample/curl.ini /etc/php-8.2/; done

Puis relancez le diagnostic ;)