Problemet är med laddningsordningen, så json-tillägget måste laddas innan mongo.so
är laddad.
Eftersom andra sannolikt kommer att stöta på detta kommer jag att beskriva hela processen:
- I din
/etc/php/mods-available
katalog (eller beroende på plattformen) skapa en separatmongo.ini
med följande:
; configuration for php mongo module
; priority=30
extension=mongo.so
-
Ta bort alla andra referenser till
mongo.so
från andra filer somphp.ini
-
Skapa symboliska länkar i var och en av
cli
ochapache2
kataloger som krävs för användning som så:
sudo ln -s ../../mods-available/mongo.ini 30-mongo.ini
I slutet av detta bör du ha en struktur som ser ut så här
$/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
Detta säkerställer att "json"-tillägget kommer att laddas av den dynamiska laddaren innan "mongo"-modulen är.
Men ta bort i princip mongo.so
från "php.ini" och lägg den i sin egen fil med högre laddningsordning än json-tillägget. Då kommer det att fungera.
Detta behöver möjligen en JIRA eftersom jag tror att det har kommit upp tidigare.
UPPDATERA :Det är faktiskt en öppen JIRA PHP-1052