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 unmongo.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 comophp.ini
-
Crear enlaces simbólicos en cada uno de los
cli
yapache2
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