MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

mongo.so:> símbolo indefinido:php_json_encode em Desconhecido na linha 0. Após a instalação do driver mongo para php


O problema é com a ordem de carregamento, então a extensão json precisa ser carregada antes de mongo.so está carregado.

Como é provável que outras pessoas se deparem com isso, descreverei todo o processo:
  • No seu /etc/php/mods-available diretório (ou conforme apropriado para a plataforma) crie um mongo.ini separado com o seguinte:
; configuration for php mongo module
; priority=30
extension=mongo.so

  • Remova quaisquer outras referências a mongo.so de outros arquivos como php.ini

  • Crie links simbólicos em cada um dos cli e apache2 diretórios conforme necessário para uso assim:

sudo ln -s ../../mods-available/mongo.ini 30-mongo.ini

No final disso, você deve ter uma estrutura parecida com esta
$/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

Isso garante que a extensão "json" seja carregada pelo carregador dinâmico antes do módulo "mongo".

Mas basicamente remova o mongo.so de "php.ini" e coloque-o em seu próprio arquivo com ordem de carregamento mais alta que a extensão json. Então vai funcionar.

Isso possivelmente precisa de um JIRA, pois acredito que tenha surgido antes.

ATUALIZAÇÃO :Na verdade é um JIRA PHP-1052 aberto