Problém je s pořadím načítání, takže rozšíření json je třeba načíst před mongo.so je načten.
Protože se s tím pravděpodobně setkají i ostatní, nastíním celý proces:
- Ve vašem
/etc/php/mods-availableadresář (nebo podle platformy) vytvořte samostatnýmongo.inis následujícím:
; configuration for php mongo module
; priority=30
extension=mongo.so
-
Odstraňte všechny ostatní odkazy na
mongo.soz jiných souborů, jako jephp.ini -
Vytvořte symbolické odkazy v každém z
cliaapache2adresáře podle potřeby pro použití takto:
sudo ln -s ../../mods-available/mongo.ini 30-mongo.ini
Na konci tohoto byste měli mít strukturu, která vypadá takto
$/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
Tím zajistíte, že rozšíření "json" bude načteno dynamickým zavaděčem dříve, než bude modul "mongo".
Ale v zásadě odstraňte mongo.so z "php.ini" a vložte jej do vlastního souboru s vyšším pořadím načítání než přípona json. Pak to bude fungovat.
To možná potřebuje JIRA, protože se domnívám, že se objevil již dříve.
AKTUALIZACE :Ve skutečnosti je otevřený JIRA PHP-1052