我正在尝试将PHP 5的副本安装到学校计算机上的主目录中。问题在于,无论何时我尝试,它都会抱怨我的libxml2副本太过时了。
我有没有办法安装而不用升级libxml2,因为我没有升级权限。
有什么建议吗?
答案 0 :(得分:9)
或者,您可以在主目录中安装libxml并通过配置安装它的位置,即
--with-libxml-dir=<your local install>
安装libxml时,只需使用配置中的--prefix=
选项即表示您不想进行系统安装。
假设你编译了cli客户端(并且当前用户和apache用户的lib搜索路径是相同的),你检查是否链接了正确的lib:
# 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列在库列表的中间位置。
答案 1 :(得分:7)
如果您不需要xml支持,请按this page:
中所述禁用它--disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear
另一方面,您可以尝试在不安装的情况下编译较新版本的libxml。
答案 2 :(得分:3)
在讨论PHP configuration documentation时,对此问题进行了一些讨论。您可以禁用XML功能以避免出现问题,但是您将失去许多有用的功能:
--disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear
大多数评论强烈建议这是一个坏主意。我建议尝试弄清楚如何升级xmllib。
答案 3 :(得分:0)
安装xmltools怎么样?