sql >> Database teknologi >  >> NoSQL >> MongoDB

mongo.so:> udefineret symbol:php_json_encode i Ukendt på linje 0. Efter installation mongo driver til php

Problemet er med indlæsningsrækkefølgen, så json-udvidelsen skal indlæses før mongo.so er indlæst.

Da andre sandsynligvis vil støde på dette, vil jeg skitsere hele processen:

  • I din /etc/php/mods-available mappe (eller alt efter platformen) opret en separat mongo.ini med følgende:
; configuration for php mongo module ; priority=30 extension=mongo.so
  • Fjern eventuelle andre referencer til mongo.so fra andre filer såsom php.ini

  • Opret symbollinks i hver af cli og apache2 mapper efter behov for brug som sådan:

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

I slutningen af ​​dette bør du have en struktur, der ser sådan ud

$/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
 

Dette sikrer, at "json"-udvidelsen indlæses af den dynamiske loader, før "mongo"-modulet er.

Men fjern dybest set mongo.so fra "php.ini" og læg den i sin egen fil med højere indlæsningsrækkefølge end json-udvidelsen. Så vil det virke.

Dette kræver muligvis en JIRA, da jeg tror, ​​det er dukket op før.

OPDATERING :Faktisk er en åben JIRA PHP-1052



  1. Hvordan ville Redis få at vide, om det skal returnere cachelagrede data eller friske data fra DB

  2. mongodb:forespørgsel efter tidsperioden mellem to datofelter

  3. MongoDB $stdDevPop

  4. Kan ikke oprette forbindelse til mongoDB, der kører i docker-container