Problem dotyczy kolejności ładowania, więc rozszerzenie json należy załadować przed mongo.so
jest załadowany.
Ponieważ inni mogą się z tym spotkać, opiszę cały proces:
- W swoim
/etc/php/mods-available
katalog (lub odpowiednio do platformy) utwórz oddzielnymongo.ini
z następującymi:
; configuration for php mongo module
; priority=30
extension=mongo.so
-
Usuń wszelkie inne odniesienia do
mongo.so
z innych plików, takich jakphp.ini
-
Utwórz dowiązania symboliczne w każdym z
cli
iapache2
katalogi wymagane do użycia, ponieważ:
sudo ln -s ../../mods-available/mongo.ini 30-mongo.ini
Na koniec powinieneś mieć strukturę, która wygląda tak
$/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
Daje to pewność, że rozszerzenie „json” zostanie załadowane przez dynamiczny program ładujący przed modułem „mongo”.
Ale w zasadzie usuń mongo.so
z "php.ini" i umieść go we własnym pliku z wyższą kolejnością ładowania niż rozszerzenie json. Wtedy to zadziała.
Prawdopodobnie wymaga to JIRA, ponieważ wierzę, że pojawiło się wcześniej.
AKTUALIZUJ :Właściwie jest to otwarta JIRA PHP-1052