2009-03-04 3 views
7

Sto cercando di installare una copia di PHP 5 nella mia home directory sul computer della scuola. Il problema è che ogni volta che provo, si lamenta che la mia copia di libxml2 è troppo obsoleta per funzionare.Installa PHP 5 senza libxml2

C'è un modo che posso installare questo senza aggiornamento libxml2, poiché non ho il permesso di aggiornare.

Qualche suggerimento?

risposta

3

C'è qualche discussione su questo problema nella discussione dello PHP configuration documentation. Puoi disabilitare le funzionalità XML per evitare i problemi, ma perderai molte utili funzionalità: --disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear

La maggior parte dei commenti suggerisce fortemente che questa è una cattiva idea. Suggerirei di cercare di capire come ottenere aggiornato xmllib.

7

Se non è necessario il supporto XML, basta disattivarlo come descritto a this page:

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

D'altra parte, si può provare a compilare una nuova versione di libxml senza installarlo.

9

In alternativa, è possibile effettuare una installazione di libxml nella home directory e passare configurare la posizione in cui è stato installato, vale a dire

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

Quando si installa libxml, è sufficiente utilizzare l'opzione --prefix= con configurare per indicare che non si desidera eseguire un'installazione di sistema.

Supponendo che avete compilato il client CLI (e che il percorso di ricerca lib per l'utente corrente e l'utente apache sono gli stessi), si controlla che il lib corretta è collegata 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 è elencati a metà dell'elenco delle biblioteche.

+0

Questo è probabilmente il miglior suggerimento pubblicato finora. – acrosman

+0

Il problema sarà quindi assicurarsi che esso carichi la libxml2 privata invece della libreria di sistema all'avvio di PHP. –

+0

@Ignacio Ho aggiunto un ulteriore passaggio per provare a provare questo. –