MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mongo.so :> symbole non défini :php_json_encode dans Inconnu sur la ligne 0. Après l'installation du pilote mongo pour php

Le problème est avec l'ordre de chargement, donc l'extension json doit être chargée avant mongo.so est chargé.

Étant donné que d'autres sont susceptibles de rencontrer cela, je vais décrire l'ensemble du processus :

  • Dans votre /etc/php/mods-available répertoire (ou selon la plate-forme) créez un mongo.ini séparé avec ce qui suit :
; configuration for php mongo module
; priority=30
extension=mongo.so
  • Supprimez toute autre référence à mongo.so à partir d'autres fichiers tels que php.ini

  • Créer des liens symboliques dans chacun des cli et apache2 répertoires requis pour une utilisation en tant que telle :

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

À la fin de cela, vous devriez avoir une structure qui ressemble à ceci

$/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

Cela garantit que l'extension "json" sera chargée par le chargeur dynamique avant le module "mongo".

Mais en gros, supprimez le mongo.so de "php.ini" et placez-le dans son propre fichier avec un ordre de chargement plus élevé que l'extension json. Alors ça marchera.

Cela a peut-être besoin d'un JIRA car je pense que cela s'est déjà produit.

MISE À JOUR :est en fait un JIRA PHP-1052 ouvert