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-availabledirectorio (o según corresponda a la plataforma) cree unmongo.iniseparado con lo siguiente:
; configuration for php mongo module
; priority=30
extension=mongo.so
-
Elimina cualquier otra referencia a
mongo.sode otros archivos comophp.ini -
Crear enlaces simbólicos en cada uno de los
cliyapache2directorios 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