Você definitivamente pode fazer isso, mas pode ficar chato.
Eu colocaria o libxml 2.8 em um prefixo separado ( ./configure --prefix=/path/to/prefix/
) juntamente com o PHP 5.1.0 (por exemplo, /opt/php510/
ou /usr/local/php510/
), já que você não quer arriscar a substituição da biblioteca mais nova por uma mais antiga. Você definitivamente seria melhor se você construísse a libxml 2.8 estaticamente, então ela é incluída no PHP e você pode evitar o 'inferno da biblioteca compartilhada' ao iniciar o programa. Normalmente, isso seria feito adicionando --disable-shared --enable-static
aos sinalizadores de configuração.
Então, no final do PHP, você teria que configurá-lo para usar o mesmo prefixo, e também adicionar os caminhos da biblioteca libxml 2.8 à sua invocação do GCC. Se ele usar autoconf para construir ( ./configure
scripts geralmente são autoconf gerados), você gostaria de executar algo como CFLAGS=-I/opt/php510/include LDFLAGS=-L/opt/php510/lib ./configure --prefix=/opt/php510
.
- CFLAGS é uma variável que contém argumentos passados para o gcc ao criar arquivos de objeto
.o
.-I/path
diz ao GCC para procurar cabeçalhos ("includes" ou.h
files) em/path
in antes de procurar na lista padrão (normalmente/usr/include
e/include
IIRC). - LDFLAGS é uma variável que contém argumentos passados para o vinculador (normalmente
ld
, embora também seja possível usargcc
como um vinculador para combinar.o
arquivos em um programa executável. O autoconf respeita essa variável em ambos usos).-L/path
diz ao vinculador para procurar por arquivos de biblioteca (estático.a
files ou objeto compartilhado.so
files) em/path
.
Se você vincular a libxml 2.8 como uma biblioteca compartilhada, receberá um erro como libxml.so.2.8 not found
, pois /etc/ld.so.conf
não foi solicitado a procurar por bibliotecas compartilhadas em /opt/php510/lib
. É por isso que recomendo usar uma versão vinculada estaticamente.
Se você tiver algum problema ao fazer isso ou se algo estiver usando um sistema de criação diferente, avise-me.
Você também pode consertar o PHP para usar as versões libxml > = 2.9 de quaisquer funções que estejam causando problemas, embora seja difícil encontrar antigos avisos de descontinuidade para funções já removidas.