sslrequiressl protocolo mac enable php apache https openssl xampp

protocolo - No se pudo encontrar el contenedor "https": ¿se olvidó de habilitarlo cuando configuró PHP?



xampp https ssl (17)

El problema está en la pregunta. Hice una investigación exhaustiva de las soluciones con respecto a esto y sé que hay temas para esto y también los he seguido y nada ha funcionado. Dicho esto, enumeraré exactamente todo lo que he hecho hasta ahora. Estoy ejecutando PHP 5.2.14 con Zend Debugging en la última versión de Eclipse en mi computadora con Windows XP. Tengo 1 GB de RAM. Tengo XAMPP ejecutándose con Apache, MySQL y FileZilla instalados.

En XAMPP hice lo siguiente (Apache estaba apagado durante estos cambios): hice clic en Admin desde el Panel de control de XAMPP y fui a https:// localhost/xampp/ . A partir de ahí, acepté los certs de esta línea en la página de bienvenida:

Para la compatibilidad con OpenSSL, utilice el certificado de prueba con https: // 127.0.0.1 o https: // localhost.

En esa misma sección revisé phpinfo() . En ''Medio ambiente'', SERVER["HTTPS"] está on . En ''Entorno Apache'', HTTPS está On . En ''Variables de PHP, _SERVER["HTTPS"] está On . En ''Phar'', la OpenSSL support está disabled (instalar ext / openssl). No sé cómo habilitar el Phar uno.

Ahora, con respecto a los archivos en C: / xampp, fui a la carpeta PHP. Debajo de los archivos php.ini de producción y desarrollo (mejor prevenir que lamentar), tengo allow_url_fopen=On , allow_url_include=On , y allow_url_include=On el punto y coma, por lo que la extension=php_openssl.dll ya no está comentada. Incluso confirmé que el .dll está en la carpeta ext de la carpeta PHP. Tanto libeay32.dll como ssleay32.dll se encuentran en las carpetas de PHP y Apache. La carpeta Apache no contiene archivos php.ini productivos o de desarrollo.

Fui a http://www.slproweb.com/products/Win32OpenSSL.html e instalé Win32 OpenSSL v1.0.0d para una medida segura.

Ahora la línea de código en cuestión en mi retrieve_website.php se ve así:

$urlquery = "https://www.googleapis.com/customsearch/v1?key=".$appid."&cx=".$google_searchid."&q=".$query."&alt=atom&num=".$results; $xmlresults = file_get_contents($urlquery);

Tengo otros dos sitios web que consulto pero se sirven a través de HTTP y funcionan bien. También tengo esta línea de código ingresada cerca del final del script:

echo ''openssl: '', extension_loaded (''openssl'') ? ''yes'':''no'', "/n"; echo ''http wrapper: '', in_array(''http'', $w) ? ''yes'':''no'', "/n"; echo ''https wrapper: '', in_array(''https'', $w) ? ''yes'':''no'', "/n"; echo ''wrappers: '', var_dump($w);

Cuando lo ejecuto como PHP Script en Eclipse, todo sale perfectamente bien de la manera que quiero junto con estos resultados:

openssl: yes http wrapper: yes https wrapper: yes wrappers: array(10) { [0]=> string(5) "https" [1]=> string(4) "ftps" [2]=> string(3) "php" [3]=> string(4) "file" [4]=> string(4) "data" [5]=> string(4) "http" [6]=> string(3) "ftp" [7]=> string(13) "compress.zlib" [8]=> string(14) "compress.bzip2" [9]=> string(3) "zip" }

A pesar de todos estos cambios que he hecho (después de haber iniciado Apache), sigo teniendo los mismos errores la primera vez que accedo a mi script PHP en Eclipse y Firefox a través de http://localhost/tutorial/retrieve_website.php :

Advertencia: file_get_contents () [function.file-get-contents]: no se puede encontrar el contenedor "https": ¿se olvidó de habilitarlo cuando configuró PHP? en C: / xampp / htdocs / tutorial / retrieve_website.php en la línea 29

Advertencia: file_get_contents (https: // www.googleapis.com/customsearch/v1?key= ID de API eliminada & cx = eliminada ID de búsqueda & q = El + Diablo + fue + abajo + a + Georgia & alt = átomo & num = 5) [archivo.función -get-contents]: no se pudo abrir la secuencia: no existe ningún archivo o directorio en C: / xampp / htdocs / tutorial / retrieve_website.php en la línea 29

Advertencia: DOMDocument :: loadXML () [domdocument.loadxml]: cadena vacía proporcionada como entrada en C: / xampp / htdocs / tutorial / retrieve_website.php en la línea 33

openssl: no http wrapper: sí https wrapper: no wrappers: array (10) {[0] => cadena (3) "php" [1] => cadena (4) "archivo" [2] => cadena (4 ) "glob" [3] => cadena (4) "datos" [4] => cadena (4) "http" [5] => cadena (3) "ftp" [6] => cadena (3) " zip "[7] => cadena (13)" compress.zlib "[8] => cadena (14)" compress.bzip2 "[9] => cadena (4)" phar "}

¿Qué es lo que he pasado por alto o no he podido hacer? Que yo sepa, he hecho todo lo que he investigado sobre HTTPS y OpenSSL


Dentro de simple_html_dom.php, cambie el valor de la variable $offset de -1 a 0 . este error generalmente ocurre cuando migras a PHP 7.

HtmlDomParser::file_get_html usa un desplazamiento predeterminado de -1 , pasando 0 debe solucionar su problema.


Después de husmear todo el día, descubrí la respuesta gracias a esta guía: http://piwigo.org/forum/viewtopic.php?id=15727

Básicamente, en Eclipse -> Windows -> Preferencias -> PHP ejecutables, hay una sección donde se hace referencia al archivo .exe y .ini. Los predeterminados estaban en el directorio de Eclipse cuando instala la característica del SDK de PHP Development Tools desde Eclipses Instalar nuevo software en el menú Ayuda.

Entonces, en lugar de eso, agregué un nuevo ejecutable llamado PHP 5.3.5 (CGI) y mencioné el cgi.exe y el .ini de la carpeta php de xampp.

Gracias webarto por darme tu tiempo para ayudarme.


En MAC AMPPS, actualicé el php-5.5.ini con lo siguiente y ahora funciona.

allow_url_include = On extension=openssl.so


En mi caso, el problema se debía a que WAMP usaba un php.ini diferente para CLI que Apache, por lo que las configuraciones realizadas a través del menú de WAMP no se aplican a CLI. Simplemente modifique el CLI php.ini y funciona.


Estoy usando opsenSUSE Leap, y tuve el mismo problema: significa que no hay soporte para OpenSSL. Así es como lo resolví:

  1. Abra YaST.
  2. Vaya a Administración de software.
  3. En el cuadro de búsqueda en el panel izquierdo, ingrese ''php5-openssl'' y presione la tecla de retorno.
  4. Haga clic en la casilla de verificación junto a ''php5-openssl'' en el panel derecho para seleccionarlo, y haga clic en ''Aceptar'' (Esto agrega compatibilidad con OpenSSL).
  5. Reinicie Apache: sudo service apache2 restart

Eso es todo, has terminado.


He habilitado la extensión openssl y funciona para mí :)

; extension = php_openssl.dll

a

extension = php_openssl.dll


Lo resolví en XAMPP al descomentar ;extension=php_openssl.dll en /apache/bin/php.ini pesar de que phpinfo () me decía que /php/php.ini era el archivo ini cargado.

EDITAR: Creo que la respuesta de Ezra es la mejor solución al agregar directamente la línea de extensión al archivo ini apropiado.


PHP7, en el archivo php.ini, elimine el ";" antes de la extension=openssl


Para aquellos que usan Winginx (basado en nginx en lugar de basado en Apache), lo arreglé con estos 4 pasos:

  1. En el menú Herramientas , presione Winginx PHP5 Config (no importa el 5 en el nombre ...):

  2. Seleccione la versión de PHP que desea que cambie php.ini :

  3. En la pestaña Extensiones de PHP, seleccione la extensión php_openssl y presione el botón Guardar :

  4. reinicie el servicio PHP apropiado a través de la barra de tareas ( Detener e iniciar ):


Para mí tuve que descomentar estas líneas en php.ini:

extension=php_openssl.dll extension_dir = "ext"

"ext" es aplicable si php_openssl.dll se encuentra en la carpeta "ext".

Nota: tuve que hacer esto para dos de mis archivos php.ini; de lo contrario, no funcionaría. Uno ubicado en la carpeta de instalación de vs.php, y el otro en la carpeta PHP

C:/Program Files (x86)/Jcx.Software/VS.Php/2013/Php 5.6 C:/Program Files (x86)/PHP/v5.6

Source


Prueba esto:

function curl($url){ $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); $buffer = curl_exec($curl); curl_close($curl); return $buffer; }


Puede usar esta función en su lugar.

function get_url_contents($url){ if (function_exists(''file_get_contents'')) { $result = @file_get_contents($url); } if ($result == '''') { $ch = curl_init(); $timeout = 30; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); $result = curl_exec($ch); curl_close($ch); } return $result; }


Su Apache probablemente no está compilado con soporte SSL. Utilice cURL en lugar de file_get_contents de todos modos. Pruebe este código; si falla, entonces estoy en lo cierto.

function curl_get_contents($url) { $curl = curl_init($url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); $data = curl_exec($curl); curl_close($curl); return $data; }


También recibí este error. Descubrí que mi versión de PHP no tenía compilada la compilación de openssl, por lo que simplemente no era suficiente agregar la directiva de extensión a php.ini. No sé cómo tiene que resolver esto en su caso particular, pero para mí, uso macports, y el comando era simplemente:

sudo port install php5-openssl


Tuve que agregar extension=php_openssl.dll a mi archivo php.ini ubicado en xampp/php/php.ini . De alguna manera no estaba allí, después de agregarlo y reiniciar Apache todo estaba funcionando bien.


en OpenSuse 12.1, lo único que se requería era:

zypper in php5-openssl


solo agrega dos líneas en tu archivo php.ini.

extension=php_openssl.dll allow_url_include = On

está funcionando para mí.