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/pathdiz ao GCC para procurar cabeçalhos ("includes" ou.hfiles) em/pathin antes de procurar na lista padrão (normalmente/usr/includee/includeIIRC). - LDFLAGS é uma variável que contém argumentos passados para o vinculador (normalmente
ld, embora também seja possível usargcccomo um vinculador para combinar.oarquivos em um programa executável. O autoconf respeita essa variável em ambos usos).-L/pathdiz ao vinculador para procurar por arquivos de biblioteca (estático.afiles ou objeto compartilhado.sofiles) 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.