web-dev-qa-db-fra.com

Socket transport "ssl" dans PHP pas activé

Je ne parviens pas à activer le transport de sockets "ssl" en PHP. Lorsque je lance mon script, j'obtiens l'erreur suivante:

Attention: fsockopen () [function.fsockopen]: impossible de connectez-vous à ssl: //www.my.site.com: 443 (Impossible de trouver le transport de socket "Ssl" - avez-vous oublié de l'activer Lorsque vous avez configuré PHP?)

J'exécute IIS6 sur Windows et voici ce que j'ai déjà fait pour essayer de le faire fonctionner:

  • décommenté les extensions php_openssl.dll et php_sockets.dll dans php.ini
  • assurez-vous que PHP charge le fichier ini auquel j'ai apporté les modifications (c'est le cas, et le chargement des autres extensions est en cours, donc je suis à peu près sûr que ce n'est pas le problème)
  • assurez-vous que php_openssl.dll et php_sockets.dll étaient au bon endroit
  • copié ssleay32.dll et libeay32.dll dans le dossier principal PHP, le dossier WINDOWS et le dossier WINDOWS/system32
  • fait en sorte que la variable de chemin Windows inclue l'emplacement de PHP
  • assurez-vous que les autorisations de fichier étaient correctes sur tous les fichiers pertinents.

J'ai redémarré IIS après chaque changement, mais je n'ai pas eu de chance. Y a-t-il quelque chose d'évident que je fais mal? Est-il possible de résoudre ce problème en petites parties? (Je peux donc comprendre le problème par le processus d'élimination ...?)

Malheureusement, Windows/IIS n’est pas mon domaine d’expertise - on m’a confié la responsabilité de ce projet car personne ne semble rien savoir.

53
jelina

Succès!

Après avoir vérifié les fichiers journaux et vérifié que les autorisations sur php_openssl.dll étaient correctes, j'ai googlé l'avertissement et trouvé d'autres solutions.

Donc je:

  • ajouté C:\PHP\ext au chemin Windows
  • ajouté libeay32.dll et ssleay32.dll à C:\WINDOWS\system32\inetsrv
  • redémarré le serveur

Je ne sais pas lequel de ces problèmes a résolu mon problème, mais il est définitivement résolu maintenant! :)

J'ai trouvé ces choses à essayer sur cette page: http://php.net/manual/fr/install.windows.extensions.php

Merci de votre aide!

21
jelina

J'avais un problème dans Windows 7 avec PHP 5.4.0 en ligne de commande, en utilisant le serveur Xampp 1.8.1. C'est ce que j'ai fait:

  1. Renommez php.ini-production en php.ini (dans le dossier C:\xampp\php \)
  2. Éditez php.ini et décommentez extension_dir=ext.
  3. Décommentez également extension=php_openssl.dll.

Après ça a bien fonctionné.

67
cikatomo

Dans XAMPP version 1.7.4, le serveur n’a pas de ligne d’extension = php_openssl.dll dans le fichier inp php. Nous devons ajouter extension = php_openssl.dll dans le fichier php.ini

8
Selvakumar

Décommentez simplement extension = php_openssl.dll Redémarrez le service Apache et cela devrait vous aider.

7
Yogesh Unavane

Laravel 4 a rencontré le même problème en essayant d’envoyer des messages électroniques à l’aide du cryptage SSL.

Ayant WAMPServer 2.2 sur Windows 7 64 bits, je n’ai activé que php_openssl dans le fichier php.ini, remis en marche WAMPServer et fonctionné sans faille.

Avez-vous suivi:

  • Cliquez sur WampServer -> PHP -> PHP extensions -> php_openssl 
  • Redémarrer WampServer
7
Marko Aleksić

J'ai aussi rencontré ce problème tout à l'heure en jouant avec Laravel.

J'utilise wampserver pour Windows et je dois copier le fichier /bin/Apache/apacheversion/bin/php.ini dans /bin/php/phpversion/php.ini.

1
Dale

J'utilise XAMPP et suis tombé sur la même erreur. J'avais fait toutes ces étapes, ajouté le chemin des variables d'environnement, copié tous les répertoires possibles de la DLL, dans/php,/Apache/bin,/system32,/syswow64, etc., mais j'avais toujours cette erreur. 

Ensuite, après avoir consulté le journal des erreurs Apache, j'ai remarqué le problème lié à l'utilisation de crochets dans le chemin. 

PHP: erreur de syntaxe, inattendu '(' dans C:\Program Files (Other)\xampp\php\php.ini à la ligne 707 0 le certificat de serveur NE PAS Inclure un ID correspondant au nom du serveur

Si vous avez installé le serveur dans le répertoire "Program Files (x86)", la même erreur peut survenir en raison de crochets non échappés.

Pour résoudre ce problème, ouvrez le fichier php.ini et localisez la ligne contenant "include_path", puis insérez le chemin entre guillemets doubles pour corriger cette erreur.

include_path = "C:\Fichiers de programme (autre)\xampp\php\PEAR"

0
Ajay Singh