2009-03-04 12 views
7

Estoy tratando de instalar una copia de PHP 5 en mi directorio de inicio en la computadora de la escuela. El problema es que cada vez que lo intento, se queja de que mi copia de libxml2 está demasiado obsoleta para funcionar.Instalar PHP 5 sin libxml2

¿Hay alguna manera de que pueda instalar este sin actualizar libxml2, ya que no tengo permiso para actualizar.

¿Alguna sugerencia?

Respuesta

3

Existe alguna discusión sobre este tema en la discusión del PHP configuration documentation. Puede desactivar las funciones XML para evitar los problemas, pero perderá muchas funciones útiles: --disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear

La mayoría de los comentarios sugieren firmemente que esta es una mala idea. Sugiero tratar de descubrir cómo actualizar el xmllib.

7

Si no necesita soporte XML, simplemente deshabilitarlo como se describe en this page:

--disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear 

Por otro lado, se puede tratar de compilar una versión más reciente de libxml sin instalarlo.

9

Alternativamente, se puede hacer una instalación de libxml en su directorio personal y pasan configurar la ubicación en la que lo hayas instalado, es decir

--with-libxml-dir=<your local install> 

Al instalar libxml, sólo tiene que utilizar la opción --prefix= con configure para indicar que no desea hacer una instalación del sistema.

Suponiendo que se ha compilado el cliente CLI (y que la ruta de búsqueda lib para el usuario actual y el usuario apache son los mismos), que compruebe que el lib correcta está vinculada con:

# ldd /usr/bin/php 
linux-vdso.so.1 => (0x00007ffff71ff000) 
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00000030f3c00000) 
libedit.so.0 => /usr/lib64/libedit.so.0 (0x00000030e8000000) 
libncurses.so.5 => /lib64/libncurses.so.5 (0x00000030f7400000) 
libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00000030e7800000) 
libbz2.so.1 => /lib64/libbz2.so.1 (0x00000030f7800000) 
libz.so.1 => /lib64/libz.so.1 (0x00000030e6c00000) 
libpcre.so.0 => /lib64/libpcre.so.0 (0x00000030f9400000) 
librt.so.1 => /lib64/librt.so.1 (0x00000030e7000000) 
libm.so.6 => /lib64/libm.so.6 (0x00000030e5c00000) 
libdl.so.2 => /lib64/libdl.so.2 (0x00000030e6400000) 
libnsl.so.1 => /lib64/libnsl.so.1 (0x00000030f6800000) 
libxml2.so.2 => /usr/lib64/libxml2.so.2 (0x00000030f2400000)) 
libssl.so.10 => /usr/lib64/libssl.so.10 (0x00000030f3000000) 
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00000030eb400000) 
libc.so.6 => /lib64/libc.so.6 (0x00000030e6000000) 
libresolv.so.2 => /lib64/libresolv.so.2 (0x00000030e7c00000) 
libfreebl3.so => /lib64/libfreebl3.so (0x00000030f3800000) 
libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00000030f7c00000) 
libpthread.so.0 => /lib64/libpthread.so.0 (0x00000030e6800000) 
/lib64/ld-linux-x86-64.so.2 (0x00000030e5800000) 

libxml es enumerado a la mitad de la lista de la biblioteca.

+0

Esta es probablemente la mejor sugerencia publicada hasta el momento. – acrosman

+0

El problema entonces será asegurarse de que carga el libxml2 privado en lugar de la biblioteca del sistema al iniciar PHP. –

+0

@Ignacio Agregué un paso adicional para tratar de probar esto. –