2009-03-04 10 views
7

J'essaie d'installer une copie de PHP 5 dans mon répertoire personnel sur l'ordinateur de l'école. Le problème est que chaque fois que j'essaie, il se plaint que ma copie de libxml2 est trop obsolète pour fonctionner.Installer PHP 5 sans libxml2

Y at-il un moyen que je peux installer ce sans mise à niveau libxml2, puisque je n'ai pas la permission de mettre à niveau.

Des suggestions?

Répondre

3

Il y a une discussion de ce problème dans la discussion du PHP configuration documentation. Vous pouvez désactiver les fonctionnalités XML pour éviter les problèmes, mais vous allez perdre beaucoup de fonctionnalités utiles: --disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear

La plupart des commentaires suggèrent fortement que c'est une mauvaise idée. Je suggère d'essayer de comprendre comment mettre à jour le xmllib.

7

Si vous n'avez pas besoin d'aide xml, juste le désactiver comme décrit this page:

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

D'autre part, vous pouvez essayer de compiler une nouvelle version de libxml sans l'installer.

9

Vous pouvez faire une installation de libxml dans votre répertoire et passer configurer l'emplacement où vous l'avez installé, à savoir

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

Lors de l'installation libxml, il vous suffit d'utiliser l'option --prefix= avec configure pour indiquer que vous ne voulez pas effectuer d'installation système.

En supposant que vous avez compilé le client cli (et que le chemin de recherche lib pour l'utilisateur actuel et l'utilisateur apache sont les mêmes), vous vérifiez que la lib correcte est liée à:

# 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 est listé à mi-chemin dans la liste de la bibliothèque.

+0

C'est probablement la meilleure suggestion postée jusqu'ici. – acrosman

+0

Le problème sera alors de s'assurer qu'il charge la bibliothèque privée libxml2 au lieu de la bibliothèque système au démarrage de PHP. –

+0

@Ignacio J'ai ajouté une étape supplémentaire pour essayer de tester cela. –

Questions connexes