Translate

viernes, 2 de enero de 2009

INSTALAR LIBRERIA GD

Introducción

:: ¿Que es la Liberia GD?
Permite crear imágenes dinamicamente y manejar automáticamente el dimensionamiento, esto es utilizado en aplicaciones donde debemos mostrar datos en forma gráfica, como podrían ser las estadísticas de un sitio web.

:: Aplicaciones que utilizan estas Librerías
Las aplicaciones que suelen usar esta librería son los CM (Joomla, Drupal, Wordpress, etc) y ademas las plataformas para e-learning (Moodle, Dokeos, etc). También se utilizan para en aplicaciones propietarias, el sistema de seguridad para detectar si el que se registra es una persona física o lo están haciendo por intermedio de robot.

:: Considerandos
Esta explicacion esta basada sobre la instalacion realizado sobre un servidor Redhat 3AS Kernel 2.4 y donde el apache y php estan instalado desde archivos source (.tar), lo obliga a instalar todas las librerias de la misma forma. Pero si instalamos el apache y php con los sistemas yum o archvios rpm (RedHat), apt-get (Debian/Ubuntu), debemos emplear el mismo sistema para la instalacion de las librerias en cuestion.

Instalación

:: Panorama General
Para instalar las librería GD, necesitamos de antemano instalar y configurar las siguiente librerías:

zlib.tar.gz
jpeg-6b.src.tar.gz
libpng-1.2.5.tar.gz
freetype-2.1.3.tar.gz

Una vez listas las librerías mencionadas procedemos a instalar la librería GD en su versión:

gd-2.0.28.tar.gz

Desarrollo de la Instalación

Los paso a seguir son:

1°.- Instalación de librerías para compresión ZLIB

Es una biblioteca de compresion de datos, la cual originariamente fue echa para la libreria de imágenes libpng.
Si el sistema operativo no la tiene instalada debemos hacerlo descargando el archivo source zlib.tar.gz y hacer lo siguiente:

a.- Crear el directorio donde se instalara
b.- Descomprimir el paquete zlib en otro directorio
c.- Ejecutar entonces lo siguiente:

'./configure' \
'--prefix=/usr/local/zlib' \
'--libdir=/usr/local/zlib' \
'--enable-shared' \

Decimos que configure el archvio Makefile para que instale la libreria en el directorio mencionado en el prefix, que ademas el directorio lib (libdir) este dentro del enunciado por el prefix, y que pueda ser compartida con otras librerias (enable shared)

make
make install

2°.- Instalacion de la Libreria para manejo de las imagenes JPEG

Descomprimir el archvio en el lugar donde finalmente quedara instalado, y no neceditamos crear ningun directorio ya que al cuando termina la descompresion genera un directorio llamado "jpeg-6b". En el caso particular de www1 se encuentra en: /usr/local/jpeg-6b

tar zxvf jpeg-6b.src.tar.gz

Ejecutar lo siguiente

./configure
./ltmain.sh (demora bastante - crea el archivo .so)
make
make install

3°.- Instalación de la Liberia para manejo de las imágenes PNG
Descomprimir el archivo libpng-1.2.5 en un directorio creado para tal fin. Ingresar al directorio script y hacer:

cp makefile.linux ../Makefile

Luego modificar el archivo Makefile en las variables donde indica por default donde se intalara, el mejor directorio es en /usr/local/include, ya que por default PHP busca en ese directorio las librerias. Compilar e Instalar:

make
make install

En esta librería no se ejecuta el configure ya que no lo posee y es la forma descripta en la documentación.

4°.- Instalación de la Liberia para manejo de las fuentes Freetype.

Descomprimir el archivo freetype-2.1.3.tar.gz en un directorio creado para tal fin e ingresar al directorio donde se descomprimió el archivo tar y ejecutar lo siguiente:

./configure --libdir=/usr/local/include --with-zlib
make
make install

5°.- Instalación de la Liberia GD para el manejo de imágenes

Una vez instaladas las librerias detalladas arriba, se procederá a con la librería GD, descomprimir el archivo gd-2.0.28.tar.gz en un directorio donde quisieramos, luego creamos el directorio donde se instalara:

mkdir /usr/local/src/gd-2.0.28 (Directorio para descomprimir)
mkdir /usr/local/gd-2.0.28 (Directorio donde se instalara)

Se instala como todo paquete tar, osea con los siguiente pasos:

'./configure' \
'--prefix=/usr/local/gd-2.0.28' \
'--with-png=/usr/local/png' \
'--with-jpeg=/usr/local/jpreg-6b' \
'--with-freetype=/usr/local/include/freetype2' \
'--with-zlib' \

Nota:
Cuando termina de hacer la configuración (./configure ...) nos indica si encontró todas las librerías, caso contrario debemos recopilar nuevamente chequeando que los path son los correctos.

make
make install

Incluyendo GD en PHP

Para que la librería GD sea reconocida se deberá recompilar nuevamente el PHP, como se indica a continuación:

'./configure' \
'--with-apxs2=/usr/local/apache223/bin/apxs' \
'--prefix=/usr/local/apache223/php' \
'--with-pgsql' \
'--with-config-file-path=/usr/local/apache223/php/lib' \
'--enable-force-redirect' \
'--disable-cgi' \
'--with-zlib' \
'--with-zip' \
'--enable-dbase' \
'--enable-calendar' \
'--with-imap' \
'--with-kerberos' \
'--with-imap-ssl' \
'--enable-mbstring' \
'--with-gd' \
'--with-freetype-dir' \
'--with-png-dir' \
'--with-jpeg-dir' \
'--enable-gd-native-ttf' \
'--enable-gd-jis-conv' \
'--with-curl' \
'--with-gettext' \
'--with-ldap-sasl' \
'--with-gettext' \
'--with-gmp' \
'--with-readline' \

En este caso particular si no habilitaba estos dos modulos en php no funcionaba la libreria en el sitio "--enable-gd-native-ttf, --enable-gd-jis-conv".

make
make install

Terminado la instalación probamos en las aplicaciones que nos estaba demandando la libreria. Esto funcionan para Moodle y Drupal con seguridad, ya que fue realizado para que estos funcionen y lo estan haciendo correctamente.