MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

mongo.so:> undefiniertes Symbol:php_json_encode in Unknown in Zeile 0. Nach der Installation des Mongo-Treibers für php

Das Problem liegt in der Ladereihenfolge, daher muss die JSON-Erweiterung vor mongo.so geladen werden wird geladen.

Da andere wahrscheinlich darauf stoßen, werde ich den gesamten Prozess skizzieren:

  • In Ihrem /etc/php/mods-available Verzeichnis (oder je nach Plattform) eine separate mongo.ini erstellen mit folgendem:
; configuration for php mongo module
; priority=30
extension=mongo.so
  • Entfernen Sie alle anderen Verweise auf mongo.so aus anderen Dateien wie php.ini

  • Erstellen Sie Symlinks in jedem der cli und apache2 Verzeichnisse, die für die Verwendung wie folgt erforderlich sind:

sudo ln -s ../../mods-available/mongo.ini 30-mongo.ini

Am Ende sollten Sie eine Struktur haben, die so aussieht

$/etc/php5$ tree
.
├── apache2
│   ├── conf.d
│   │   ├── 05-opcache.ini -> ../../mods-available/opcache.ini
│   │   ├── 10-pdo.ini -> ../../mods-available/pdo.ini
│   │   ├── 20-json.ini -> ../../mods-available/json.ini
│   │   ├── 20-readline.ini -> ../../mods-available/readline.ini
│   │   └── 30-mongo.ini -> ../../mods-available/mongo.ini
│   └── php.ini
├── cli
│   ├── conf.d
│   │   ├── 05-opcache.ini -> ../../mods-available/opcache.ini
│   │   ├── 10-pdo.ini -> ../../mods-available/pdo.ini
│   │   ├── 20-json.ini -> ../../mods-available/json.ini
│   │   ├── 20-readline.ini -> ../../mods-available/readline.ini
│   │   └── 30-mongo.ini -> ../../mods-available/mongo.ini
│   └── php.ini
└── mods-available
    ├── json.ini
    ├── mongo.ini
    ├── opcache.ini
    ├── pdo.ini
    └── readline.ini

Dadurch wird sichergestellt, dass die „json“-Erweiterung vom dynamischen Ladeprogramm geladen wird, bevor das „mongo“-Modul geladen wird.

Aber grundsätzlich die mongo.so entfernen aus "php.ini" und lege es in eine eigene Datei mit einer höheren Ladereihenfolge als die json-Erweiterung. Dann wird es funktionieren.

Dies erfordert möglicherweise ein JIRA, da es meines Erachtens schon einmal aufgetreten ist.

AKTUALISIEREN :Ist eigentlich ein offenes JIRA PHP-1052