2009-03-04 11 views
7

Próbuję zainstalować kopię PHP 5 w moim katalogu domowym na szkolnym komputerze. Problem polega na tym, że za każdym razem, gdy próbuję, skarży się, że moja kopia libxml2 jest zbyt przestarzała do pracy.Zainstaluj PHP 5 bez libxml2

Czy istnieje sposób, aby zainstalować ten bez aktualizacji libxml2, ponieważ nie mam uprawnień do aktualizacji.

Wszelkie sugestie?

Odpowiedz

3

Istnieje pewna dyskusja na ten temat w dyskusji na temat PHP configuration documentation. Możesz wyłączyć funkcje XML, aby uniknąć problemów, ale stracisz wiele przydatnych funkcji: --disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear

Większość komentarzy zdecydowanie sugeruje, że jest to zły pomysł. Proponuję spróbować dowiedzieć się, jak uzyskać uaktualnienie xmllib.

7

Jeśli nie potrzebują wsparcia xml, po prostu go wyłączyć zgodnie z opisem na this page:

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

Z drugiej strony, można spróbować kompilacji nowszej wersji libxml bez instalowania go.

9

Alternatywnie, można dokonać z libxml zainstalować w swoim katalogu domowym i przekazać skonfigurować położenie już zainstalowany, tj

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

Podczas instalacji libxml, wystarczy użyć opcji --prefix= z skonfiguruj, aby wskazać, że nie chcesz instalować systemu.

Zakładając, że skompilowany klienta cli (i że lib ścieżka wyszukiwania dla bieżącego użytkownika, a użytkownik apache są takie same), sprawdzić, czy poprawne lib jest związany z:

# 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 jest wymienione w połowie listy bibliotek.

+0

Jest to prawdopodobnie najlepsza propozycja opublikowana do tej pory. – acrosman

+0

Problem polega na upewnieniu się, że podczas uruchamiania PHP ładuje się prywatny plik libxml2 zamiast biblioteki systemowej. –

+0

@Ignacio Dodałem dodatkowy krok, aby spróbować to przetestować. –

Powiązane problemy