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.

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.

¡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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.