Instalación y actualización de la librería gráfica GD

En muchas instalaciones web necesitaremos las librerías gráficas GD para mostrar y manipular las imágenes presentes en nuestro sitio.

¿Qué son las librerías GD?

Las siglas GD proceden originalmente de "gif draw" o "graphics draw" y son unas librerías de código abierto desarrolladas en C para la creación dinámica de imágenes en aplicaciones. Entre otros muchos formatos, permiten manipular al vuelo imágenes PNG, JPEG y GIF.

¿Para qué se necesitan en Drupal?

El uso más común en Drupal se encuentra en el módulo ImageAPI, que utiliza opcionalmente las librerías GD2 para gestionar la manipulación de las imágenes. ImageAPI por sí solo no hace nada, sino que proporciona un API que es utilizado por otros módulos, como ImageCache o ImageField.

¿Cómo sé si las tengo instaladas?

La forma más rápida es crear un fichero con el siguiente código y consultarlo:

Para Drupal, solamente tendremos que identificarnos con un usuario con permisos de e ir a Administrar » Informe de Estado y hacer click en el link de la versión de PHP: http://www.misitio.com/admin/reports/status/php Deberemos ver algo como esto en la página resultante, que nos indica el estado enabled para las librerías GD gd-support.png

Si no encontramos referencia a GD en nuestro phpinfo, deberemos instalarlo. También es posible que tengamos unas librerías preconfiguradas que no incluyen toda la funcionalidad que necesitamos, esto suele pasar cuando utilizamos la versión oficial, en lugar de la "bundled", por lo que es recomendable instalar esta última. En ese caso el propio Informe de Estado, Drupal nos advierte de este problema: Imagen_2.png

Instalación

Primero deberemos deshacernos de nuestro paquete GD actual y toda su información relacionada:

Eliminar el paquete GD y su configuración.

sudo apt-get --purge remove php5-gd

Mucho cuidado con este comando puesto que si no estamos en un servidor "limpio", es decir, que ya tiene software instalado, puede causar problemas, si estamos usando Plesk, por ejemplo, podría dejar de funcionar, aquí tenéis otra alternativa.

Después añadimos un par de líneas al fichero /etc/apt/sources.lst

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

Actualizamos el instalador

apt-get update

Y finalmente instalamos el paquete GD

apt-get install php5-gd

En caso de que nos consulte si queremos actualizar nuestro php.ini, seleccionaremos la opción de Conservar actual

Una vez hecho esto, reiniciamos el servidor web y comprobamos el phpinfo para ver si lo hemos conseguido instalar correctamente.

/etc/init.d/apache2 restart
  • Instalación en Windows
  • La instalación en Windows es la más sencilla, ya que PHP incluye las librerías GD2 por defecto y solo tendremos que activarlas, en el fichero php.ini (normalmente en C:\Windows\php.ini) deberemos modificar esta línea que está en la sección extensions: #extension=php_gd2.dll Y dejarla descomentada extension=php_gd2.dll Y asegurarnos de que la librería está en el directorio marcado por el parámetro extension_dir, en caso contrario, será necesario modificar también este parámetro para que apunte al directorio correcto. Finalmente, reiniciamos el servidor web y comprobamos en el phpinfo que haya quedado instalada.

Comentarios

Excelente, nunca me gusto la idea de recompilar PHP para que esto funcione correctamente.

Todos los días se aprende alguno nuevo!

Saludos, muy buen artículo.

[...] le tocó el turno a la configuración de la librería GD para PHP en Ubuntu y Windows, y hoy le dedico una entrada a la configuración de un entorno de desarrollo AMP en Drupal (Apache [...]

Gracias Mariano, la verdad es que el intentar no recompilar php fue lo que me hizo buscar esta alternativa, de esta forma casi todas las acciones avanzadas de ImageCache son posibles y sin warnings

Ah, interesante forma de solucionar el problema Pedro.

Lo único que me da un poco de cosa añadir repositorios extraños a sources.list... eso si, es bastante mas sencillo que recompilar php.

En cualquier caso, gracias por el consejo!

Depende de lo estricto que seas, dotdeb es un repo bastante estable, pero también hay que decir que es Debian, por lo que en un Ubuntu mezclas un poco los repositorios y hay a quien no le gusta, pero es una solución más fácil y rápida que recompilar php, yo veo que para entornos de desarrollo es una buena opción.

Un saludo Manuel!

[...] en nuestra instalación de php. He hablado con anterioridad de cómo lidiar con las librerías GD en Ubuntu y también como configurar un entorno web de desarrollo con GD habilitado en Mac OS [...]

Buen contenido muchas camarada.

Hola:
Te agradezco mucho la expliación pero tengo un problema, ya hice todo lo que sugieres y nada, no me aparece la libreria en el phpinfo. Ya descomentarie la linea en el php.ini verifique que el extension_dir estuviera correcto y me asegure de que el .dll estuviera en la carpeta de ext, he reiniciado el servidor y nada no me aparece, ya llevo varios dias en esto y la verdad no se que pueda ser, por favor si alguien me diera alguna solución se lo agradecería.

Salu2

Lo primero que tienes que hacer es asegurarte de que estás cambiando el php.ini correcto, parece una tontería, pero en windows, el 99% de los errores de modificación en el php.ini son porque se cambia otro que se instaló por error, o uno antiguo. Busca por todo el sistema los ficheros php.ini que tengas y asegurate de que modificas el correcto.
Si una vez que hayas hecho esto y reiniciado el servidor web sigue sin aparecer en el phpinfo, asegurate de que la línea de configuración pone
<code>extension=php_gd2.dll</code>
y no tiene # o ; delante.
Si aún así no te funciona, fuerza el extension_dir a c:/php/ext o donde tengas las librerías y comprueba que te lo está modificando.
Como último paso, descárgate los binarios de php de php.net, los que van en formato .zip y usa ese php.

Hola
Voy a hacer exactamente todo lo que me dices, pero no se como identifico el php.ini, o sea, como me doy cuenta de que es el correcto.

Salu2

Hola pedro:
Te estoy infinitamente agradecida, al fin solucioné el problema, tal como lo habías dicho estaba cambiando el archivo incorrecto. Gracias por todo

Salu2

No hay de que kirearwen!

[...] Neste blog se da unha solución facilita que paso a reproducir, existen outras solucións pero bastante mais complexas (compilar php): [...]

Muy buen dato, vos sabes que puse solo una linea de codigo y me actualilzo el php5, ya que tenia instalado este sin la libreria gd, con solo
"sudo apt-get php5-gd"
se soluciono y el problema y con el script phpinfo ya me asegure de que funciona

Muchas gracias :D ,saludos y mucho +éxito

Muy buen articulo pero precisamente estoy tratando de instalar una libreria gd en un servidor web en Ubuntu 14.04 a 64 bits y me dice lo siguiente despues de los respectivos update y upgrade :

sudo apt-get install php5-gd
Aqui pide password *****
Leyendo lista de paquetes ... Hecho
Leyendo arbol de dependencia...Hecho
Leyendo la informacion de estado...Hecho
php5-gd is already the newest version
Los paquetes indicados a continuacion se instalaron de forma automatica y ya no son necesarios
linux-headers-3.13.0-34-generic linux-headers-3.13.0-34-generic
linux-image-3.13.0-34-generic linux-image-extra-3.13.0-34-generic
Use 'autoremove' to remove them
0 actualizados, 0 se instalaron, 0 para eliminar 121 no actualizados

y no se instala el paquete gd que ademas de necesario para drupal , lo necesito para otras plataformas .... estoy pensando en que haya problemas en los servidores de repositorio , pero para no aventurarme a sacar conclusiones imprevistas ... me podrian indicar que es lo que sucede aqui

cualquier consejo es bien recibido

Muy buen articulo me ayudo en el problema que tenia acerca de la GD library.

Añadir nuevo comentario