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 unmongo.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 comephp.ini
-
Crea collegamenti simbolici in ciascuno dei
cli
eapache2
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