admin/environment/php extension/curl

Saltar a: navegación, buscar


Unix

Moodle recomienda usar libcurl con soporte para al menos TLS 1.2. Es importante actualizar principalmente por motivos de seguridad, pero también porque servicios externos (como por ejemplo, PayPal) dejarán de soportar versiones antiguas de TLS en el futuro cercano. Existen tres términos con los cuales debe familiarizarse para este proceso:

  • libcurl - La librería (biblioteca) subyacente que de hecho hace las solicitudes (https://curl.haxx.se/libcurl/).
  • Librerías (bibliotecas) SSL/TLS - UNa librerpia contra la cual será compilada libcurl. Esta librería proporciona la funcionalidad SSL/TLS en libcurl. Algunas opciones populares son OpenSSL, NSS, y GnuTLS.
  • PHP/cURL - El módulo de PHP que envuelve a libcurl. Este módulo proporciona las funciones curl_* en PHP.

Para instalar la librería curl en Unix

  1. Usted necesitará librerpias SSL/TLS actualizadas.
  2. Usted necesitará compilar libcurl
  3. Usted necesitará recompilar PHP/cURL desde el código fuente

Distribuciones Debian y basadas en Debian (Ubuntu,...)

Estos pasos deberían de funcionar en Debian 7.0 (aunque Usted podría necesitar instalar sudo) y en Ubuntu 12.04 LTS - si Usted está usando algo más antiguo, necesitará actualizar. Por favor tome nota de que estos pasos usan los paquetes php5-*,porque eso es lo que usan muchos repositorios para gestionar paquetes. Idealmente Usted debería de estar usando PHP 7.1, o cuando menos PHP 7. Más información al respecto en Moodle and PHP7. Si USted está usando PHP7 o 7.1 podría ser posible sustituir los paquetes php5-* con php7-* o php7.1-* dependiende de como isntaló Usted PHP. Este ejemplo también usa OpenSSL, pero los pasos para otras librerías son similares.

  • Actualizar paquetes:
    sudo apt-get update
  • Instalar los siguientes paquetes:
    apt-get install git build-essential autoconf libtool libtool-bin php5-curl libbison-dev=1:2.5.dfsg-2.1 libxml2-dev libssl-dev openssl
  • Revisar que su versión OpenSSL sea ahora al menos 1.0.1 corriendo:
    openssl version
  • Obtener los códigos fuentes de libcurl, compilar, e instalar:
 git clone https://github.com/curl/curl.git
 cd curl
 git checkout curl-7_51_0
 ./buildconf
 ./configure --with-ssl
 make
 sudo make install
  • Compilar e instalar el módulo PHP/cURL
 git clone https://github.com/php/php-src.git
 cd php-src
 git checkout php-5.6.29
 cd ext/curl
 phpize
 ./configure
 make
 sudo make install
 sudo bash -c "echo \"extension=curl.so\" > /etc/php5/apache2/conf.d/20-curl.ini"
 sudo bash -c "echo \"extension=curl.so\" > /etc/php5/cli/conf.d/20-curl.ini"
  • Nota: El archivo /etc/php5/[apache2|cli]/conf.d/20-curl.ini podría ya estar presente, ollamarse de una forma ligeramente diferente. Revise primeramente y modifique el comando apropiadamente.
  • Reinicet apache:
    sudo service apache2 restart
  • Verifique que el módulo PHP/cURL esté usando las librerías actualizadas SSL/TLS:
    php -i | grep SSL
  • Usted debería ver algo similar a :
 SSL => Yes
 SSL Version => OpenSSL/1.0.1t

LA versión de SSL podría ser diferente de 1.0.1t, lo que está bien, siempre y cuando no sea más antigua que 1.0.1.

Windows

Para instalar la librería curl en Windows

  1. Abra el archivo php.ini encontrado en la carpeta php/php.ini (versiones más antiguas de XAMPP usan la carpeta moodle/apache/bin )
  2. Encontrar la línea:
    ;extension=php_curl.dll
  3. Quitar el caracter
    ;
    al principio de la línea
  4. Reiniciar Apache

Si continúa obteniendo un mensaje de error después de realizar estos pasos, entonces:

  • Vaya a la carpeta php .
  • Copie el archivo
    icudt##.dll
    ,
    icuin##.dll
    y
    icuuc##.dll
    (donde ## es un número de dos dígitos, como por ejemplo: 36 o 49).
  • Vaya al directorio bin de Apache.
  • Pegue allí los siguientes tres archivos:
  apache/bin/icudt49.dll
  apache/bin/icuin49.dll
  apache/bin/icuuc49.dll
  • Reinicie su servidor web Apache y vuelva a intentar el proceso de instalación de Moodle.

Sugerencia: Si pareciera que WAMP tiene o viene con una versión corrupta de curl.dll, vea el hilo del foro forum.wampserver.com Wamp Server 2.2 Windows 7 64-bit and curl not working side-by-side configuration incorrect para los detalles del problema y como resolverlo.