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

mongo.so:> simbolo undefined:php_json_encode in Unknown on line 0. Dopo l'installazione del driver mongo per php

Il problema riguarda l'ordine di caricamento, quindi l'estensione json deve essere caricata prima di mongo.so è caricato.

Poiché è probabile che altri si imbattano in questo, delineerò l'intero processo:

  • Nel tuo /etc/php/mods-available directory (o come appropriato per la piattaforma) crea un mongo.ini separato con quanto segue:
; configuration for php mongo module
; priority=30
extension=mongo.so
  • Rimuovi qualsiasi altro riferimento a mongo.so da altri file come php.ini

  • Crea collegamenti simbolici in ciascuno dei cli e apache2 directory come richiesto per l'uso in questo modo:

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

Alla fine dovresti avere una struttura simile a questa

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

Questo assicura che l'estensione "json" venga caricata dal caricatore dinamico prima del modulo "mongo".

Ma sostanzialmente rimuovi mongo.so da "php.ini" e inserirlo nel proprio file con un ordine di caricamento superiore rispetto all'estensione json. Allora funzionerà.

Questo forse ha bisogno di un JIRA come credo sia già apparso.

AGGIORNAMENTO :In realtà è un JIRA PHP-1052 aperto