Vấn đề là với thứ tự tải, vì vậy phần mở rộng json cần được tải trước mongo.so
được tải.
Vì những người khác có thể gặp phải điều này, tôi sẽ phác thảo toàn bộ quá trình:
- Trong
/etc/php/mods-available
của bạn thư mục (hoặc phù hợp với nền tảng) tạo mộtmongo.ini
riêng với những điều sau:
; configuration for php mongo module
; priority=30
extension=mongo.so
-
Xóa mọi tham chiếu khác tới
mongo.so
từ các tệp khác nhưphp.ini
-
Tạo các liên kết tượng trưng trong mỗi
cli
vàapache2
thư mục theo yêu cầu để sử dụng như vậy:
sudo ln -s ../../mods-available/mongo.ini 30-mongo.ini
Cuối cùng, bạn sẽ có một cấu trúc giống như thế này
$/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
Điều này đảm bảo rằng phần mở rộng "json" sẽ được tải bởi trình tải động trước khi có mô-đun "mongo".
Nhưng về cơ bản hãy xóa mongo.so
từ "php.ini" và đặt nó trong tệp riêng của nó với thứ tự tải cao hơn so với phần mở rộng json. Sau đó, nó sẽ hoạt động.
Điều này có thể cần một JIRA vì tôi tin rằng nó đã được đưa ra trước đây.
CẬP NHẬT :Trên thực tế là một JIRA mở PHP-1052