About Taringa!

Popular channels

Ubuntu: Recompilar PHP 5 con soporte para GD Bundled

Ubuntu: Recompilar PHP 5 con soporte para GD Bundled

Quienes necesiten instalar LAMP en un servidor con Ubuntu Server o Debian, se encontrarán con que la versión de la librería libGD que se instala desde el administrador de paquetes, es la versión desarrollada originalmente por Boutell, y NO es la version bundled (embedida o empaquetada) por los desarrolladores de PHP.
Tanto Debian como Ubuntu consideran que esta versión puede traer problemas de seguridad ya que se trata de una modificación de la original (un Fork).
Está suficientemente probado por otras grandes distribuciones, que la nueva librería es lo suficientemente madura y estable como para ser usada en entornos de producción.

Esta versión cuenta con nuevas funciones como imagerotate(), imagelayereffect() y algunas otras, muy usadas actualmente por grandes sistemas como CMR's y otros.

Cómo solucionarlo

La manera correcta de integrar la librería GD desarrollada por PHP, es recompilar el paquete. Y gracias a las herramientas que nos da Ubuntu heredadas desde Debian, es muy fácil de hacer.

Instalar los paquetes necesarios

En una consola o terminal, iniciamos la sesión como root, e ingresamos los siguientes comandos:

apt-get update
apt-get install build-essential debhelper fakeroot
cd /usr/src
apt-get source php5
apt-get build-dep php5
cd php5-5.2.3


Esto nos instala las herramientas de compilación, el código fuente de PHP5, y las dependencias de compilación necesarias.
NOTA: El último comando, depende de la versión de Ubuntu que esten utilizando y de la versión de PHP que traiga la misma. Hay que cambiar la parte resaltada de acuerdo a esto.

Modificar el código fuente

Luego debemos modificar el archivo que guarda las directivas de compilación del paquete, que se encuentra en el directorio debian/rules

Con nuestro editor favorito (por ejemplo, nano) abrimos el archivo:

nano ./debian/rules

Allí buscamos la línea que contiene:

--with-gd=shared,/usr --enable-gd-native-ttf \

Y la modificamos para que quede de esta manera:

--with-gd=shared --enable-gd-native-ttf \

Compilar

Guardamos el archivo, y ejecutamos los siguientes comandos:

dpkg-buildpackage -rfakeroot
cd ..
apt-get remove php5-gd
dpkg -i php5-gd_5.2.3-1ubuntu6.3_i386.deb


El primer comando es la compilación en sí, que se va a tomar su tiempo.
Luego quitamos el paquete original de php5-gd, para instalar el que acabamos de generar con este proceso.

Luego de eso, con reiniciar el Apache es suficiente:

/etc/init.d/apache2 restart

Fuente

Basado en el artículo http://cumu.li/2008/5/13/recompiling-php5-with-bundled-support-for-gd-on-ubuntu
0No comments yet