sql >> Databáze >  >> NoSQL >> MongoDB

mongo.so:> nedefinovaný symbol:php_json_encode v Neznámý na řádku 0. Po instalaci ovladače mongo pro php

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 je php.ini

  • Vytvořte symbolické odkazy v každém z cli a apache2 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



  1. Použití uložených funkcí JavaScriptu v agregačním kanálu, MapReduce nebo runCommand

  2. Problém s vracením dat načtených z dotazů DB volaných ve smyčce

  3. Ovladač MongoDb c# najde položku v poli podle hodnoty pole

  4. Mám pro každé připojení vytvořit nového klienta Redis?