pecl install mongo - continua compilando com o módulo errado API

9

Trabalhando com o Ubuntu 12.04 aqui, nginx e php5-fpm

Eu tinha mongo funcionando bem no php 5.3, depois adicionei o ondrej / php5 ppa e atualizei para o php5.4. Ele manteve extensões GD e CURL, mas não o mongo. Eu adicionei novamente a linha ao arquivo php.ini e nada. Então eu ativei erros de inicialização e consegui isto:

PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mongo.so' - /usr/lib/php5/20100525/mongo.so: cannot open shared object file: No such file or directory

Então, acho que eu fiz find -name 'mongo.so' e movi o arquivo de 20090626 / para 20100525 / ... o que resultou nesse erro:

PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match

Eu então fiz pecl uninstall mongo e pecl install mongo - que criou o novo arquivo mongo.so em 20090626 /

Eu sou novo em tudo isso, então espero que seja um erro fácil de corrigir! Eu só preciso colocar o mongo de volta em funcionamento.

    
por kavisiegel 12.07.2012 / 08:13

2 respostas

12

Meu palpite seria:

  • O pecl install mongo está realmente instalando um binário pré-construído (o que seria muito burro, mas não seria tão surpreendente); ou
  • Você ainda tem o pacote php5-dev antigo da sua instalação 5.3 disponível, e pecl está localizando e usando isso em vez da versão 5.4. Dê uma olhada na sua lista de pacotes relacionados ao PHP ( dpkg -l '*php*' ) e veja se ainda há algum pacote 5.3 e atualize-o.
por 12.07.2012 / 08:22
2

Grandes mentes pensam da mesma forma, postadas momentos depois que eu descobri o que está acontecendo. Sua resposta está correta e antes da minha, então é o que vou aceitar como resposta, mas para referência futura, a solução foi esta:

apt-get update
apt-get install php5-dev
pecl uninstall mongo
pecl install mongo
/etc/init.d/php5-fpm restart

E, é claro, o mongo.so já estava no php.ini de uma maneira que o pecl não o removeu, o que facilitou a atualização.

    
por 12.07.2012 / 08:26