pecl install mongo - Kompiliert weiterhin mit der falschen Modul-API

9

Arbeiten mit Ubuntu 12.04 hier, Nginx und PHP5-Fpm

Ich hatte Mongo gut auf PHP 5.3 arbeiten, dann habe ich das Ondrej / PHP5 ppa hinzugefügt und auf PHP5.4 aktualisiert. Es behielt GD- und CURL-Erweiterungen bei, aber nicht Mongo. Ich habe die Zeile erneut zur Datei php.ini hinzugefügt und nichts. Dann habe ich Startfehler aktiviert und Folgendes erhalten:

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

Also, wilde Vermutung, ich habe find -name 'mongo.so'die Datei von 20090626 / auf 20100525 / ... verschoben, was zu diesem Fehler führte:

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

Ich habe es dann getan pecl uninstall mongound pecl install mongo- was die neue mongo.so-Datei bereits 20090626 erstellt hat /

Ich bin ein bisschen neu in all dem, also hoffentlich ist dies ein blinder, leicht zu behebender Fehler! Ich muss nur Mongo wieder zum Laufen bringen.

kavisiegel
quelle

Antworten:

12

Meine Vermutung wäre entweder:

  • pecl install mongoinstalliert tatsächlich eine vorgefertigte Binärdatei (was wirklich dumm wäre, aber bei weitem nicht so überraschend); oder
  • Sie haben immer noch das alte php5-devPaket aus Ihrer 5.3-Installation im Umlauf und peclfinden und verwenden es anstelle der 5.4-Version. Sehen Sie sich Ihre PHP-bezogene Paketliste ( dpkg -l '*php*') an, prüfen Sie, ob noch 5.3-Pakete vorhanden sind, und aktualisieren Sie sie.
womble
quelle
Ich habe gerade meine eigene Frage damit beantwortet! Vielen Dank!
Kavisiegel
Also welches war es?
womble
2
Ich musste php5-devmongo aktualisieren , deinstallieren und dann neu installieren.
Kavisiegel
das hat perfekt für mich funktioniert
Oliver Bayes-Shelton
2

Große Köpfe denken gleich, Womble hat Momente gepostet, nachdem ich herausgefunden habe, was los ist. Seine Antwort ist richtig und vor meiner, also werde ich sie als Antwort akzeptieren, aber zum späteren Nachschlagen war die Lösung folgende:

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

Und natürlich war mongo.so bereits in der php.ini so, dass pecl es nicht entfernte, was das Upgrade etwas einfacher machte.

kavisiegel
quelle