Het probleem zit in de laadvolgorde, dus de json-extensie moet worden geladen vóór mongo.so
is geladen.
Aangezien anderen dit waarschijnlijk zullen tegenkomen, zal ik het hele proces schetsen:
- In uw
/etc/php/mods-available
directory (of zoals van toepassing op platform) maak een apartemongo.ini
met het volgende:
; configuration for php mongo module
; priority=30
extension=mongo.so
-
Verwijder alle andere verwijzingen naar
mongo.so
van andere bestanden zoalsphp.ini
-
Maak symbolische links in elk van de
cli
enapache2
mappen zoals vereist voor gebruik als volgt:
sudo ln -s ../../mods-available/mongo.ini 30-mongo.ini
Aan het einde hiervan zou je een structuur moeten hebben die er zo uitziet
$/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
Dit zorgt ervoor dat de "json"-extensie wordt geladen door de dynamische lader voordat de "mongo" -module wordt geladen.
Maar verwijder in feite de mongo.so
van "php.ini" en plaats het in zijn eigen bestand met een hogere laadvolgorde dan de json-extensie. Dan zal het werken.
Dit heeft mogelijk een JIRA nodig, omdat ik denk dat het eerder is voorgekomen.
UPDATE :Eigenlijk is het een open JIRA PHP-1052