Vous devez activer l'extension openssl pour télécharger des fichiers via https


123

Je voulais installer Zend Framework 2. J'ai donc téléchargé l'application squelette. Comme mentionné dans le manuel ZF2, nous devons émettre la commande

php composer.phar install 

À l'intérieur du squelette.

Mais j'obtiens une erreur

Vous devez activer l'extension openssl pour télécharger des fichiers via https

Ensuite, j'ai activé le ssl_module dans mon wamp, j'ai vérifié le fichier php_ini et je peux voir la ligne suivante

extension = php_openssl.dll

J'obtiens toujours la même erreur. Quelqu'un a-t-il une idée de ce que j'ai manqué?


1
J'ai eu ce problème en exécutant travis-ci et il s'est avéré que contrairement à toutes les distributions Linux sous le soleil, certains des environnements travis-ci plus anciens étaient compilés sans openssl, juste au cas où quelqu'un d'autre rencontrerait le même problème.
Kzqai

@Kzqai est-il possible de compiler cette extension dans travis, comme pour PHP 5.3.3 dans ma question ? Je vois dans leur livre de recettes que vous pouvez installer les extensions PECL, mais je ne pense pas que l'extension openssl soit disponible via PECL.
Jeff Puckett

Réponses:


286

PHP CLI SAPI utilise un php.inimodule différent de CGI ou Apache.

Trouver la ligne ;extension=php_openssl.dlldans wamp/bin/php/php#.#.##/php.ini et décommenter en supprimant le point - virgule ( ;) depuis le début de la ligne.


J'ai également dû activer l'extension phar (extension = php_phar.dll) et comme dit ci-dessous, le module apache ssl!
Diego Favero

1
"PHP CLI SAPI utilise un php.ini différent du module CGI ou Apache." C'était le truc!
George D.

Si vous ne trouvez pas cette ligne dans votre, php.iniajoutez simplement la ligne extension=php_openssl.dllsous la partie Extensions dynamiques.
totymedli

J'utilise xampp, Composer donne la même erreur manquante ssl ouverte même après avoir supprimé le ';' de l'extension openssl dans php.ini.
Shashikumar Misal

Si vous utilisez Mac et port, vous pouvez sélectionner la version de PHP port select php php55et installer l'extensionport install php55-openssl
Prabowo Murti

36

Vérifiez que vous modifiez le bon fichier php.ini.

Référence: https://github.com/composer/composer/issues/1440

"WAMP utilise différents fichiers php.ini dans la CLI et pour Apache. Lorsque vous activez php_openssl via l'interface utilisateur WAMP, vous l'activez pour Apache, pas pour la CLI. Vous devez modifier C: \ wamp \ bin \ php \ php- XYZ \ php.ini pour l'activer pour la CLI. "


2
qui penserait que ... Vraiment ... Cela a résolu le problème. Merci
Ruwantha

20

assurez-vous que vous avez le chemin correct vers le dossier d'extension

extension_dir = "ext"

par défaut, il est commenté avec; personnage


1
cette ligne a été commentée complètement et maintenant cela fonctionne
Brian Dillingham

important pour l'installation de fenêtres!
haakym

Où est cette ligne? Dans quel dossier? le php.ini en 1, C: \ wamp64 \ bin \ apache OU 2. C: \ wamp64 \ bin \ php \ php7.0.0?
MyDaftQuestions

9

J'ai également eu le même problème en jouant avec Zend Framework 2 et composer. J'utilise PHP 5.4 (installé via macports) et ma solution consistait également à installer openssl pour PHP 5.4 via macports.

sudo port installer php54-openssl

5

J'ai rencontré ce problème, mais la configuration de openssl (également pour cli) n'a pas aidé.

J'ai mis à jour le compositeur et cela a réglé mon problème.

Tapez simplement:

$ php composer.phar self-update

ou

$ composer selfupdate

Bonne chance!


4

J'utilise XAMPP. Dans C: \ xampp \ php \ php.ini, l'entrée pour openssl n'existait pas, j'ai donc ajouté "extension = php_openssl.dll" à la ligne 989, et le compositeur a fonctionné.


4

Vous devez activer "extension = php_openssl.dll" dans les deux fichiers (php et apache). mon chemin de fichiers pc sont les suivants:

  1. C: \ wamp \ bin \ php \ php5.3.13 \ php.ini

  2. C: \ wamp \ bin \ apache \ apache2.2.22 \ bin \ php.ini


C'est faux. Vérifiez avec phpinfo () quel php.ini est utilisé
ThaDafinser

3

Uttam, si votre problème n'est pas résolu, essayez l'approche en 3 étapes ci-dessous. Cela a fonctionné pour moi car j'avais exactement le même problème.

étape 1: cliquez sur l'icône de la barre d'état wamp.

étape2: allez au menu apache-> modules apache

étape 3: cliquez sur l'élément de menu "ssl_module"

il redémarrera automatiquement wamp. si wamp n'a pas redémarré automatiquement, redémarrez-le via le menu du plateau de wamp-> Redémarrer tous les services. Après le redémarrage, confirmez que "ssl_module" vient comme coché dans le menu apache-> modules apache

après cela, essayez simplement l'installation de php composer.phar en passant par la réponse que vous avez partagée, le fichier php.ini contient l'extension = php_openssl.dll et le répertoire php / ext contient également le fichier "php_openssl.dll"

bonne chance


3

La réponse de Valery m'a aidé: https://stackoverflow.com/a/14265815/492457

WAMP utilise différents fichiers php.ini dans la CLI et pour Apache. lorsque vous activez php_openssl via l'interface utilisateur WAMP, vous l'activez pour Apache, pas pour la CLI. Vous devez modifier C: \ wamp \ bin \ php \ php-5.4.3 \ php.ini pour l'activer pour la CLI.


2

Assurez-vous de mettre à jour votre php.inipour CLI. Pour mon cas, c'était C:\wamp\bin\php\php5.4.3\php.iniet décommenter la extension=php_openssl.dllligne.


1

Réponse tardive mais en ajoutant pour que les autres puissent en connaître la raison.

Vous devez également éditer le fichier php.ini à l'emplacement "wamp \ bin \ php \ php-XYZ".


0

Je devais décommenter extension=openssldans le php.inifichier pour que tout le travail!


0

Attention si vous utilisez wamp, n'utilisez pas l'interface wamp pour activer le extension=php_openssl.dll

allez simplement dans votre répertoire php, par exemple: C:\wamp\bin\php\php5.4.12et éditez php.iniet décommentez le extension=php_openssl.dll.

ça devrait marcher.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.