php7_module - No se puede encontrar el transporte de socket "ssl": ¿olvidó habilitarlo cuando configuró PHP?
loadmodule php7_module (4)
Compruebe su archivo php.ini, en él, si tiene esto:
;extension=php_openssl.dll
cambiarlo a
extension=php_openssl.dll
Después de eso, recuerde reiniciar Apache, ya sea utilizando el panel de control que ofrece Appserver o usando las ventanas de servicios en el panel de control del sistema.
También asegúrese de que php_openssl.dll esté en una carpeta a la que pueda acceder el sistema, mucha gente lo utiliza para resolver el problema de los problemas de ubicación de dll al copiarlos en C: / windows o C: / windows / system32. Aunque eso no debería ser necesario.
Después de eso, ejecuta un archivo con phpinfo y verifica que esté habilitado.
He leído en alguna parte, no puedo precisarlo, que alguna instalación de ese tipo de wamps tiene más de un php.ini, pero solo uno está realmente activo, ¿podría ser que hayas editado el incorrecto?
Estoy buscando en Google para este error muchas horas. He intentado todas las soluciones de this tema sin suerte. <? phpinfo(); ?>
<? phpinfo(); ?>
(la única diferencia que uso Appserver en lugar de IIS) no muestra nada relacionado con SSL. ¿Qué más debo intentar?
El mensaje de error completo:
<b>Warning</b>: fsockopen() [<a href=''function.fsockopen''>function.fsockopen</a>]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in <b>C:/AppServ/www/webgitz/test/class.smtp.php</b> on line <b>122</b><br />
SMTP -> ERROR: Failed to connect to server: Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP? (27010016)
y código:
<?php
require_once "validation.php";
require_once "PHPMailer.php";
require_once "class.smtp.php";
$email= "[email protected]";
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true; // enable SMTP authentication
$mail->Port =465; // set the SMTP server port
$mail->Host = "smtp.gmail.com"; // GMAIL''s SMTP server
$mail->SMTPDebug = 2;
$mail->SMTPSecure = ''ssl'';
$mail->Username = "[email protected]"; // GMAIL username
$mail->Password = "*********"; // GMAIL password
$mail->AddReplyTo("[email protected]","AAAA"); // Reply email address
$mail->From = "[email protected]";
$mail->FromName = "...."; // Name to appear once the email is sent
$mail->Subject = "...."; // Email''s subject
$mail->Body = "Hello World,<br />This is the HTML BODY<br />"; //HTML Body
$mail->AltBody = "..."; // optional, commentA out and test
$mail->WordWrap = 50; // set word wrap
$mail->MsgHTML($msg); // [optional] Send body email as HTML
$mail->AddAddress("$email", "fooo"); // email address of recipient
$mail->IsHTML(true); // [optional] send as HTML
if(!$mail->Send()) echo ''ok''; else echo ''error'';
?>
La respuesta correcta es reemplazar la línea.
;extension=php_openssl.dll
en el archivo php.ini
con
extension=php_openssl.dll
Si no encuentra la extension=php_openssl.dll
en el archivo php.ini
, simplemente agregue la siguiente línea al archivo:
extension=php_openssl.dll
¡Esto debería funcionar!
Para algunas personas, esas soluciones no funcionan.
Para mí, la solución fue esta: copiar dll libeay32.dll y ssleay32.dll en el directorio bin del servidor - apache.
La solución sugiere en un comentario en: http://php.net/manual/fa/openssl.installation.php
Cuando miro en el registro de errores, entendí que el problema estaba en cargar los archivos DLL y colocarlos en el directorio del servidor era la única manera.
Tuve un error similar con ssl durante horas.
Lo que funcionó para mí fue copiar php/libeay32.dll
, php/ssleay32.dll
y php/ext/php_openssl.dll
del directorio php al directorio Apache2.2/bin
. Luego reinicie apache.