web-dev-qa-db-fra.com

L'extension openssl est requise pour la protection SSL / TLS

composer create-project flarum/flarum . --stability=beta

J'essaie d'exécuter cette commande, mais il m'a donné cette erreur.

  [RuntimeException]                                                           
  The openssl extension is required for SSL/TLS protection but is not availab  
  le. If you can not enable the openssl extension, you can disable this error  
  , at your own risk, by setting the 'disable-tls' option to true.  

J'ai essayé d'ajouter "extension = php_openssl.dll" à "php.ini", mais il y a toujours cette erreur

50
Yang

La même erreur s'est produite pour moi. Je l'ai corrigé en désactivant TLS pour Composer, ce n'est pas sûr mais j'ai assumé le risque sur mon develop machine.

essaye ça:

composer config -g -- disable-tls true

et relancez votre compositeur. Ça marche pour moi!

Mais c'est non sécurisé et non recommandé pour votre serveur. Le site officiel dit:

Si défini sur true, toutes les URL HTTPS seront essayées avec HTTP et aucun cryptage au niveau du réseau n'est effectué. L'activer est un risque pour la sécurité et n'est PAS recommandé. Le meilleur moyen est d'activer l'extension php_openssl dans le fichier php.ini.

Si vous ne souhaitez pas activer la couche non sécurisée sur votre machine/serveur, alors configurez votre php pour activer openssl et cela fonctionne également. Assurez-vous que l'extension PHP Openssl a été installée et activez-la sur le fichier php.ini.


Pour activer OpenSSL, ajoutez ou trouvez et décommentez cette ligne dans votre fichier php.ini:

Linux/OSx:

extension=php_openssl.so

Windows:

extension=php_openssl.dll

Et rechargez votre serveur php-fpm/web si besoin!

105
Vinícius Medeiros

selon le composer référence , il existe deux options pertinentes: disable-tls et secure-http.

nano ~/.composer/config.json ...

{
    "config": {
        "disable-tls": true,
        "secure-http": false
    }
}

alors il se plaint beaucoup:

You are running Composer with SSL/TLS protection disabled.
Warning: Accessing getcomposer.org over http which is an insecure protocol.

mais il exécute le composer selfupdate (ou autre chose).

alors que l'on ne peut pas simplement "activer SSL dans le php.ini" sous Linux; PHP doit être compilé avec openSSL configuré en tant que bibliothèque shared - pour pouvoir y accéder à partir de PHP CLI SAPI .

13
Martin Zeitler

Pour activer openssl, allez dans php.ini et activez cette ligne:

extension=php_openssl.dll

si vous ne voulez pas activer openssl, vous pouvez définir composer et ne pas utiliser openssl avec cette commande:

composer config -g -- disable-tls true

cependant, c'est un problème de sécurité.

9
Clairton Luz

J'avais exactement le même problème et je ne pouvais pas trouver de solution. Après avoir réfléchi et cherché pendant un moment, je me suis dit que mon PHP.INI ne cherchait apparemment pas dans le bon répertoire pour mes PHP Extensions, donc Je suis allé sous:

"Répertoire dans lequel résident les extensions chargeables (modules)." Et a trouvé ce qui suit:

; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
;extension_dir = "ext"

Et simplement enlevé le; devant "extension_dir =" ext ", notez que ceci ne concerne que Windows, supprimez le point-virgule devant le premier rép_extension si vous utilisez un système d'exploitation différent.

Je ne sais pas pourquoi le mien n'était pas déjà marqué, mais c'est juste quelque chose à rechercher si vous rencontrez des problèmes.

7
NiceDevelopmentq

Ce problème est dû à openssl et au directeur des extensions, alors décommentez les extensions ci-dessous dans le fichier php.ini

extension=php_openssl.dll extension_dir = "ext"

Cela fonctionne sur ma machine.

2
Vrushal Raut