pecl install mongo - sigue compilando con API de módulo incorrecta

9

Trabajando con Ubuntu 12.04 aquí, nginx y php5-fpm

Tenía mongo trabajando bien en php 5.3, luego agregué el ondrej / php5 ppa y actualicé a php5.4. Mantuvo extensiones GD y CURL, pero no mongo. Volví a agregar la línea al archivo php.ini, y nada. Luego habilité los errores de inicio y obtuve esto:

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

Entonces, supongo que lo hice find -name 'mongo.so'y moví el archivo de 20090626 / a 20100525 / ... lo que resultó en este error:

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

Luego lo hice pecl uninstall mongoy pecl install mongo, que creó el nuevo archivo mongo.so en 20090626 /

Soy un poco nuevo en todo esto, así que espero que sea un error ciego y fácil de solucionar. Solo necesito que Mongo vuelva a funcionar.

kavisiegel
fuente

Respuestas:

12

Mi suposición sería:

  • pecl install mongoen realidad está instalando un binario precompilado (que sería realmente tonto, pero no sería tan sorprendente); o
  • Todavía tiene el php5-devpaquete anterior de su instalación 5.3, y peclestá buscando y usando eso en lugar de la versión 5.4. Eche un vistazo a su lista de paquetes relacionados con PHP ( dpkg -l '*php*') y vea si quedan 5.3 paquetes, y actualícelos.
womble
fuente
¡Estaba respondiendo mi propia pregunta con esto! ¡Gracias!
kavisiegel
Entonces, ¿cuál era?
womble
2
Tuve que actualizar php5-dev, desinstalar mongo y luego reinstalar.
kavisiegel
eso funcionó perfectamente para mí
Oliver Bayes-Shelton
2

Grandes mentes piensan igual, womble publicó momentos después de que descubrí lo que está sucediendo. Su respuesta es correcta y antes que la mía, así que es lo que aceptaré como respuesta, pero para referencia futura, la solución fue esta:

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

Y, por supuesto, mongo.so ya estaba en php.ini de una manera que pecl no lo eliminó, por lo que fue un poco más fácil de actualizar.

kavisiegel
fuente