php ssl iis-6 fsockopen

El transporte de socket "ssl" en PHP no está habilitado



iis-6 fsockopen (6)

Tengo problemas para habilitar el transporte de socket "ssl" en PHP. Cuando ejecuto mi script, obtengo el error:

Advertencia: fsockopen () [function.fsockopen]: no se puede conectar a ssl: //www.my.site.com: 443 (No se puede encontrar el socket de transporte "ssl" - ¿Olvidaste habilitarlo cuando configuraste PHP? )

Estoy ejecutando IIS6 en Windows y esto es lo que he hecho hasta ahora para intentar que funcione:

  • Descomentó las extensiones php_openssl.dll y php_sockets.dll en php.ini
  • se aseguró de que PHP estaba cargando el archivo ini al que hice los cambios (es decir, y definitivamente está cargando otras extensiones, así que estoy bastante seguro de que este no es el problema)
  • se aseguró de que php_openssl.dll y php_sockets.dll estuvieran en la ubicación correcta
  • copió ssleay32.dll y libeay32.dll en la carpeta principal de PHP, la carpeta WINDOWS y la carpeta WINDOWS / system32
  • se aseguró de que la variable de ruta de Windows incluyera la ubicación de PHP
  • se aseguró de que los permisos de los archivos fueran correctos en todos los archivos relevantes.

He reiniciado IIS después de casi todos los cambios, pero no he tenido suerte. ¿Hay algo obvio de que estoy haciendo mal? ¿Hay alguna manera de solucionar esto en partes más pequeñas? (Entonces, ¿puedo resolver el problema por el proceso de eliminación ...?)

Lamentablemente, Windows / IIS no es mi área de especialización: me han puesto a cargo porque nadie más parece saber nada.


¡Éxito!

Después de verificar los archivos de registro y asegurarme de que los permisos en php_openssl.dll eran correctos, busqué en Google la advertencia y encontré más cosas para probar.

Asique:

  • se agregó C: / PHP / ext a la ruta de Windows
  • Se agregaron libeay32.dll y ssleay32.dll a C: / WINDOWS / system32 / inetsrv
  • reiniciado el servidor

No estoy seguro de cuál de estos solucionó mi problema, pero definitivamente está solucionado ahora. :)

Encontré estas cosas para probar en esta página: http://php.net/manual/en/install.windows.extensions.php

¡Gracias por tu ayuda!


En XAMPP, la versión 1.7.4 del servidor no tiene la extensión = php_openssl.dll en el archivo php ini. Tenemos que agregar extension = php_openssl.dll en el archivo php.ini


Estaba teniendo problemas en Windows 7 con PHP 5.4.0 en la línea de comandos, usando el servidor Xampp 1.8.1. Esto es lo que hice:

  1. Cambie el nombre de php.ini-production a php.ini (en la carpeta C: / xampp / php /)
  2. Edite php.ini y descomente extension_dir=ext .
  3. También descomente la extension=php_openssl.dll .

Después de eso funcionó bien.


Se encontró con el mismo problema en Laravel 4 al tratar de enviar correos electrónicos usando cifrado SSL.

Con WAMPServer 2.2 en Windows 7 64bit solo habilité php_openssl en php.ini, reinicié WAMPServer y funcioné sin problemas.

Lo siguiente:

  • Haga clic en WampServer -> PHP -> Extensiones de PHP -> php_openssl
  • Reiniciar WampServer

Simplemente elimine el comentario de la extensión = php_openssl.dll Reinicie el servicio Apache y eso debería ayudar.


También me encontré con este problema ahora mientras jugueteaba con laravel.

Estoy usando wampserver para Windows y tuve que copiar el archivo /bin/apache/apacheversion/bin/php.ini a /bin/php/phpversion/php.ini