Respuestas:
El sitio de WordPress funcionaba principalmente sin problemas, excepto en una sección del panel del sitio, donde tenía algunos problemas con la actualización o la instalación. Cuando intenté instalar el tema, me dio el error " Error de instalación: error de descarga. No se encontraron transportes que funcionen".
Afortunadamente, solucioné el problema con la siguiente solución .
Resulta que este mensaje de error ocurre cuando faltan extensiones en un servidor de desarrollo, por lo que WordPress no puede realizar solicitudes HTTP externas.
La solución es bastante simple. Las extensiones que faltan que hacen posibles esas solicitudes HTTP ya están instaladas con Wamp Server. De manera predeterminada, simplemente están deshabilitadas. Para habilitarlos, necesitamos editar el archivo de configuración php.ini.
Edición del archivo php.ini
El archivo php.ini contiene una lista de muchas extensiones con algunas de ellas deshabilitadas de forma predeterminada. La única que tuve que habilitar fue la extensión openssl.
Estos son los pasos para habilitar esa extensión:
Eso es todo, hemos terminado!
La API HTTP de WordPress ha sido construida de tal manera que funciona en muchos servidores como sea posible, probando diferentes formas (transportes) para hacerlo.
Según el mensaje de error, no hay transportes que funcionen y, por lo tanto, WordPress no puede realizar ninguna solicitud HTTP saliente.
Le recomiendo que instale algo como el complemento Core Control de WordPress, que le permite depurar todos los transportes HTTP existentes. Es muy posible que mientras un transporte no funciona, otro esté bien. Este complemento le permite deshabilitar el roto y probar la API HTTP con el nuevo transporte.
Si resulta que ninguno de los transportes está funcionando, debe comunicarse con su proveedor de alojamiento para al menos instalar algo como cURL en el servidor para que pueda realizar solicitudes HTTP en PHP.
El consejo sobre este mensaje de error es bastante variado y nadie parece proporcionar una respuesta integral (vea algún blog , una respuesta duplicada y aquí y aquí en SO). Esperemos que esta sea una versión más formal del problema.
Considero solo WordPress en PHP servido a través de Apache (no puedo comentar sobre NginX en este momento ya que no lo he probado con PHP, ni puedo comentar sobre otros marcos). La respuesta puede exhibir un sesgo leve hacia Windows 10 con un Apache 2.4.37 autoconstruido, PHP 7.2 y WordPress 4.2.X.
PHP y cURL explican, bastante bien uno podría agregar, que debajo de la campana se basa WordPress Requests
, un contenedor alrededor de las bibliotecas cURL
y fSockets
. Requests
prefiere la cURL
biblioteca si está disponible, pero supuestamente recurrirá a la fSockets
biblioteca para descargar Plugins / Temas / etc. El error "Sin transporte" es indicativo de que ninguna de las bibliotecas está configurada correctamente en Apache o PHP. También es posible que el firewall también interfiera con el proceso.
Pruebe la configuración de Apache y PHP configurando y cargando el script PHPinfo estándar desde su navegador. Esto debería tener una sección separada titulada cURL
cuyas entradas muestran información diversa. De lo contrario, configure y cargue el siguiente script para verificar.
<?php
echo 'Curl: ', function_exists('curl_init') ? 'Enabled' : 'Disabled';
?>
No se como hacer la prueba fScokets
.
Para garantizar la disponibilidad de cURL
parece ser necesario habilitarlo dentro php.ini
.
Asegúrese de que extentions_dir
apunta correctamente a la carpeta de extensiones
extentions_dir="ext"
(Alternativamente, a extentions_dir="D:PATH/TO/php/ext"
menudo se sugiere)
Asegúrese de que la cURL
extensión esté habilitada
extension=curl
( extentions=php_curl(.so|.dll)
o extentions="PATH/TO/php_curl(.so|.dll)"
también se sugieren, posiblemente para PHP <7.2)
Desde PHP parece que las bibliotecas eay32
, ssh2
y ssleay32
también deben estar disponibles en la ruta de acceso (con OpenSSL 1.1 eay32
se cambió el nombre crypto-*
y ssleay32
se cambió el nombre ssl-*
). En Windows, el truco feo es copiar estas bibliotecas de la carpeta raíz de PHP en la carpeta system32
o wow64
. La mejor solución es modificar las variables de ruta para incluir la carpeta raíz de PHP (Personalmente, prefiero una ruta limpia que configuro según sea necesario, pero esto es PHP). En las cajas * nix parece que uno simplemente necesita instalar el php5-curl
paquete para las distribuciones.
Nota: Los comentarios en la página PHP sugieren que uno simplemente puede agregar LoadFile "PATH/TO/lib(eay32|ssh2)|ssleay32.dll"
entradas a las mismas , httpd.conf
pero cURL
parece buscar estas bibliotecas en la ruta de acceso de uno; discutiendo la sugerencia. La gente de XAmpp / Wamp se sale con la suya ya que parecen volcar su propia raíz en la ruta del sistema.
Una vez hecho esto, reinicie Apache. Si está utilizando el monitor Apache, debería detenerse y luego iniciar Apache; Esto configura un nuevo entorno para que el servicio se ejecute (ahorrándole un reinicio).
No sé qué es necesario para que esto funcione.