¡Hola! me llamo pedro cambra y este es mi blog, cambrico.net. soy un desarrollador web de oviedo aunque vivo en barcelona, donde soy socio de neurotic, una pequeña empresa especializada en drupal.
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:
<?php
phpinfo();
?>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

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:

Instalación
- Instalación en Ubuntu / Debian
- Instalación en Windows
Primero deberemos deshacernos de nuestro paquete GD actual y toda su información relacionada:
1. If not already done removing your current GD package and its configurations.
sudo apt-get --purge remove php5-gd
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 allActualizamos el instalador
apt-get updateY finalmente instalamos el paquete GD
apt-get install php5-gdEn 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
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.



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.
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!
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
extension=php_gd2.dlly 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!
Comentar