2009-03-04 2 views
7

Я пытаюсь установить копию PHP 5 в мой домашний каталог на школьном компьютере. Проблема в том, что всякий раз, когда я пытаюсь, он жалуется, что моя копия libxml2 слишком устарела для работы.Установить PHP 5 без libxml2

Есть ли способ установить этот без обновления libxml2, так как у меня нет разрешения на обновление.

Любые предложения?

ответ

3

Обсуждается этот вопрос в обсуждении PHP configuration documentation. Вы можете отключить функции XML, чтобы избежать проблем, но вы потеряете множество полезных функций: --disable-libxml --disable-dom --disable-simplexml --disable-xml --disable-xmlreader --disable-xmlwriter --without-pear

Большинство комментариев настоятельно предлагает это плохая идея. Я предлагаю попытаться выяснить, как получить обновление xmllib.

7

Если вам не нужна поддержка XML, просто отключить его, как описано на this page:

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

С другой стороны, вы можете попробовать компиляции новой версии Libxml без установки.

9

В качестве альтернативы, вы можете сделать установку Libxml в вашем домашнем каталоге и передать настроить место, где вы установили его, то есть

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

При установке LibXML, вы просто должны использовать --prefix= вариант с чтобы указать, что вы не хотите выполнять установку системы.

Предполагая, что вы собрали клиента CLI (и что 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 является перечисленные на полпути вниз по списку библиотек.

+0

Это, вероятно, лучшее предложение, опубликованное до сих пор. – acrosman

+0

После этого проблема будет заключаться в том, чтобы загружать личный libxml2 вместо системной библиотеки при запуске PHP. –

+0

@Ignacio Я добавил дополнительный шаг, чтобы попробовать проверить это. –

Смежные вопросы