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-available
adresář (nebo podle platformy) vytvořte samostatnýmongo.ini
s následujícím:
; configuration for php mongo module
; priority=30
extension=mongo.so
-
Odstraňte všechny ostatní odkazy na
mongo.so
z jiných souborů, jako jephp.ini
-
Vytvořte symbolické odkazy v každém z
cli
aapache2
adresář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