08/06/2020
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.

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.
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:
- 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.inioC:\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 archivophp.inicargado ("Loaded Configuration File"). - 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=curlo;extension=php_curl.dll. El nombre exacto puede variar ligeramente según la versión de PHP. - 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=curloextension=php_curl.dll. - Verifica las dependencias: Aunque no siempre es necesario, es una buena práctica asegurarse de que las librerías
libeay32.dllyssleay32.dll(o sus equivalentes más modernos comolibssl-*.dllylibcrypto-*.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. - Reinicia tu servidor web: Este es un paso fundamental que muchos olvidan. Para que los cambios en
php.inisurtan 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.

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 updatesudo apt-get install libcurl4-gnutls-dev - Para sistemas basados en RHEL/CentOS/Fedora:
sudo yum install curl-develosudo 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íaphp8.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 nginxsudo systemctl restart php8.2-fpm (ajusta la versión)
Tabla Comparativa: Habilitar cURL en Windows vs. Linux
| Característica | Windows (Paquetes precompilados) | Linux (Usando gestor de paquetes) | Linux (Compilando desde fuente) |
|---|---|---|---|
| Método Principal | Edición de archivo de texto | Instalación de paquete | Instalación de dependencias y compilación |
| Archivo/Comando Clave | php.ini | apt-get install php-curl / yum install php-curl | ./configure --with-curl |
| Dependencias | DLLs como libssl.dll, libcrypto.dll | El gestor de paquetes las resuelve automáticamente | Paquete libcurl-dev o curl-devel |
| Requiere Reinicio | Sí, del servidor web (Apache, etc.) | Sí, del servidor web y PHP-FPM | Sí, 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).

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.

