sql >> Base de Datos >  >> NoSQL >> MongoDB

mongo.so:> símbolo indefinido:php_json_encode en Desconocido en la línea 0. Después de la instalación del controlador mongo para php

El problema es con el orden de carga, por lo que la extensión json debe cargarse antes de mongo.so está cargado.

Dado que es probable que otros se encuentren con esto, describiré todo el proceso:

  • En tu /etc/php/mods-available directorio (o según corresponda a la plataforma) cree un mongo.ini separado con lo siguiente:
; configuration for php mongo module
; priority=30
extension=mongo.so
  • Elimina cualquier otra referencia a mongo.so de otros archivos como php.ini

  • Crear enlaces simbólicos en cada uno de los cli y apache2 directorios según sea necesario para su uso como tal:

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

Al final de esto, deberías tener una estructura que se vea así

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

Esto asegura que el cargador dinámico cargue la extensión "json" antes que el módulo "mongo".

Pero básicamente elimina el mongo.so de "php.ini" y colóquelo en su propio archivo con un orden de carga más alto que la extensión json. Entonces funcionará.

Esto posiblemente necesite un JIRA, ya que creo que ha surgido antes.

ACTUALIZAR :En realidad es un JIRA PHP-1052 abierto