Where to find libcurl [/ usr?

Guía Definitiva para Habilitar cURL en PHP

08/06/2020

Valoración: 4.28 (4669 votos)

En el vasto universo del desarrollo web con PHP, una de las herramientas más indispensables y poderosas es, sin duda, la extensión cURL. Si alguna vez has necesitado que tu aplicación se comunique con una API externa, descargue un archivo de otro servidor o simplemente realice una solicitud HTTP, es muy probable que te hayas topado con cURL. Sin embargo, su configuración inicial puede ser un punto de fricción para muchos desarrolladores, generando preguntas y bloqueos. Esta guía está diseñada para desmitificar el proceso y proporcionarte un camino claro y detallado para habilitar cURL en tu entorno de PHP, ya sea que trabajes en Windows o en un sistema basado en Linux.

How to enable PHP curl?
CURL IS ENABLED BY DEFAULT BUT IN CASE YOU HAVE DISABLED IT, FOLLOW THE STEPS TO ENABLE IT. , Open php. ini (it's usually in /etc/ or in php folder on the server). , Search for extension=php_curl. dll. Uncomment it by removing the semi-colon( ; ) in front of it. , Restart the Apache Server.

Entender la diferencia entre simplemente tener la librería y tenerla correctamente integrada en PHP es crucial. A menudo, la confusión surge de instrucciones que parecen contradictorias o que aplican a escenarios muy específicos, como la compilación de PHP desde cero. Aquí, abordaremos los métodos más comunes y efectivos, desde la simple edición de un archivo de configuración hasta la instalación de paquetes de desarrollo necesarios para una compilación exitosa. Prepárate para dominar cURL y desbloquear todo el potencial de comunicación de tus aplicaciones PHP.

Índice de Contenido

Habilitando cURL en Windows: El Camino Directo

Para la mayoría de los usuarios que trabajan con paquetes precompilados de PHP en Windows (como los que vienen con XAMPP, WAMP o Laragon), el proceso de habilitar cURL es sorprendentemente sencillo y no requiere compilar absolutamente nada. La clave reside en un único archivo de configuración: el famoso php.ini.

Sigue estos pasos para ponerlo en marcha:

  1. Localiza tu archivo php.ini: Este archivo es el corazón de la configuración de PHP. Su ubicación puede variar, pero generalmente se encuentra en el directorio raíz de tu instalación de PHP (por ejemplo, C:\php\php.ini o C:\xampp\php\php.ini). Si no estás seguro, una forma infalible de encontrarlo es crear un archivo PHP con la función <?php phpinfo(); ?> y abrirlo en tu navegador. La página de información te mostrará la ruta exacta del archivo php.ini cargado ("Loaded Configuration File").
  2. Edita el archivo: Ábrelo con tu editor de texto preferido. Utiliza la función de búsqueda (Ctrl+F o Cmd+F) para encontrar la siguiente línea: ;extension=curl o ;extension=php_curl.dll. El nombre exacto puede variar ligeramente según la versión de PHP.
  3. Descomenta la extensión: El punto y coma (;) al principio de la línea indica que es un comentario, es decir, está desactivada. Simplemente elimina ese punto y coma. La línea debe quedar así: extension=curl o extension=php_curl.dll.
  4. Verifica las dependencias: Aunque no siempre es necesario, es una buena práctica asegurarse de que las librerías libeay32.dll y ssleay32.dll (o sus equivalentes más modernos como libssl-*.dll y libcrypto-*.dll) estén presentes en el directorio raíz de tu instalación de PHP. Estas son dependencias necesarias para la funcionalidad SSL de cURL. En la mayoría de las distribuciones modernas de PHP para Windows, ya vienen incluidas.
  5. Reinicia tu servidor web: Este es un paso fundamental que muchos olvidan. Para que los cambios en php.ini surtan efecto, debes reiniciar completamente tu servidor Apache, Nginx o el servidor que estés utilizando. No basta con refrescar la página.

Una vez reiniciado, vuelve a ejecutar tu script con phpinfo(). Ahora deberías ver una sección completa dedicada a "cURL" con información sobre su versión y las características soportadas. Si aparece, ¡felicidades! Has habilitado cURL en Windows.

Instalando y Compilando con cURL en Linux

En los sistemas operativos Linux, el enfoque puede ser diferente, especialmente si estás compilando PHP desde el código fuente o si tu distribución no incluye la extensión por defecto. Aquí, el concepto clave es la diferencia entre la librería cURL y sus archivos de desarrollo.

Para que PHP pueda "engancharse" a cURL durante la compilación, no solo necesita la librería en sí (libcurl.so), sino también los archivos de cabecera (.h) que definen cómo interactuar con ella. Estos archivos suelen venir en un paquete de desarrollo separado.

Where to find libcurl [/ usr?
In order to compile with cURL, you need libcurl header files (. h files). They are usually found in /usr/include/curl .

Paso 1: Instalar el paquete de desarrollo de libcurl

El comando para instalar este paquete varía según el gestor de paquetes de tu distribución:

  • Para sistemas basados en Debian/Ubuntu:
    sudo apt-get update
    sudo apt-get install libcurl4-gnutls-dev
  • Para sistemas basados en RHEL/CentOS/Fedora:
    sudo yum install curl-devel o sudo dnf install libcurl-devel

La instalación de este paquete colocará los archivos de cabecera necesarios, típicamente en directorios como /usr/include/curl/.

Paso 2: Compilar PHP con la opción cURL

Si estás instalando PHP desde el código fuente, ahora puedes incluir la bandera --with-curl en tu comando de configuración. Esto le indica al proceso de compilación que busque las librerías de cURL que acabas de instalar y construya el módulo de PHP correspondiente.

./configure --with-curl --otras-opciones...

Después de configurar, procede con los comandos make y make install como lo harías normalmente.

¿Y si ya tengo PHP instalado?

Si ya tienes PHP instalado a través del gestor de paquetes de tu sistema (por ejemplo, sudo apt-get install php), el proceso es aún más simple. Solo necesitas instalar el módulo de cURL específico para tu versión de PHP:

  • En Debian/Ubuntu:
    sudo apt-get install php-curl (Si usas una versión específica, sería php8.2-curl, por ejemplo).
  • En CentOS/RHEL:
    sudo yum install php-curl

Después de la instalación, no olvides reiniciar el servidor web (Apache, Nginx) y el servicio PHP-FPM si lo estás utilizando, para que cargue la nueva extensión.

sudo systemctl restart apache2 o sudo systemctl restart nginx
sudo systemctl restart php8.2-fpm (ajusta la versión)

Tabla Comparativa: Habilitar cURL en Windows vs. Linux

CaracterísticaWindows (Paquetes precompilados)Linux (Usando gestor de paquetes)Linux (Compilando desde fuente)
Método PrincipalEdición de archivo de textoInstalación de paqueteInstalación de dependencias y compilación
Archivo/Comando Clavephp.iniapt-get install php-curl / yum install php-curl./configure --with-curl
DependenciasDLLs como libssl.dll, libcrypto.dllEl gestor de paquetes las resuelve automáticamentePaquete libcurl-dev o curl-devel
Requiere ReinicioSí, del servidor web (Apache, etc.)Sí, del servidor web y PHP-FPMSí, después de la instalación final

Preguntas Frecuentes (FAQ)

P: Descomenté la línea en php.ini, reinicié Apache, pero cURL sigue sin aparecer en phpinfo(). ¿Qué hago?

R: Primero, asegúrate de que estás editando el archivo php.ini correcto. La página de phpinfo() te dirá cuál es el "Loaded Configuration File". Segundo, revisa los logs de error de Apache o PHP; podrían indicar que falta una DLL de la que cURL depende. Finalmente, verifica que la ruta a las extensiones de PHP esté correctamente configurada en tu php.ini (busca la directiva extension_dir).

How to install curl in PHP?
Installation ¶ To use PHP's cURL support you must also compile PHP --with-curl[=DIR] where DIR is the location of the directory containing the lib and include directories. In the include directory there should be a folder named curl which should contain the easy. h and curl.

P: ¿Cuál es la diferencia exacta entre libcurl y el paquete libcurl-dev o curl-devel?

R: libcurl es la librería compartida que los programas utilizan en tiempo de ejecución para hacer las llamadas de cURL. En cambio, libcurl-dev o curl-devel contiene los archivos de cabecera (archivos .h) y los enlaces estáticos. Estos son necesarios únicamente en el momento de la compilación de un programa (como PHP) para que sepa cómo "hablar" con la librería libcurl. Para un usuario final, solo se necesita la primera; para un desarrollador que compila, se necesitan ambas.

P: ¿Necesito compilar PHP desde cero solo para usar cURL?

R: Absolutamente no en la mayoría de los casos. La compilación desde el código fuente es un escenario avanzado. Si usas un paquete estándar de PHP en Windows o instalas PHP a través de los repositorios oficiales de tu distribución de Linux, casi siempre podrás habilitar cURL editando el php.ini o instalando un paquete adicional (como php-curl) sin necesidad de recompilar nada.

P: Al ejecutar un script de cURL, obtengo un error de certificado SSL. ¿Está relacionado?

R: Sí, puede estarlo. Esto usualmente significa que cURL no puede verificar el certificado SSL del servidor al que te estás conectando. Puede deberse a que tu sistema no tiene un paquete de certificados de autoridad (CA) actualizado. La solución implica configurar cURL para que apunte a un archivo cacert.pem válido, pero eso ya es un tema de uso de cURL, no de su instalación.

En conclusión, habilitar cURL en PHP es un proceso que va de lo trivial a lo medianamente complejo dependiendo de tu sistema operativo y método de instalación de PHP. Para la gran mayoría de los desarrolladores, se reducirá a editar una línea en un archivo y reiniciar el servidor. Para aquellos en entornos más personalizados, la clave está en entender la necesidad de los paquetes de desarrollo. Con esta guía, deberías estar más que preparado para superar cualquier obstáculo y poner a punto esta herramienta esencial en tu arsenal de desarrollo.

Si quieres conocer otros artículos parecidos a Guía Definitiva para Habilitar cURL en PHP puedes visitar la categoría Automovilismo.

Subir