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é?

Uttam Dutta
la source
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.

BorisS
la source
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. "

Duramba
la source
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

Adam Kopciński
la source
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
Freddy Duarte
la source
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!

Athlan
la source
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é.

Andrew Koper
la source
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

Mohammed Saqib Rajput
la source
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

adang
la source
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.

Karlisup
la source
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.

codarrior
la source
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".

Shah Alom
la source
0

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

Harshit Agrawal
la source
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.

meti
la source