Đây là một tình huống kỳ lạ mà tôi đã tìm thấy. Tôi đã sử dụng PHP và MongoDB cùng nhau trên một dự án và cập nhật phần mềm liên quan. Sau khi nâng cấp, tôi đã đảm bảo cập nhật các tập tin conf mới và tất cả là tốt --- trừ khi tôi cố gắng sử dụng lớp MongoClient
, tôi nhận được lỗi nghiêm trọng sau đây:Sau khi nâng cấp PHP lên phiên bản 7, tại sao tôi không thể sử dụng trình điều khiển mongodb?
Fatal error: Uncaught Error: Class 'MongoClient' not found in /srv/http/test.php
Vì vậy, bản năng đầu tiên của tôi là để kiểm tra số /etc/php/php.ini
của tôi để đảm bảo rằng mongodb.so được bao gồm chính xác. Tôi tìm thấy nó sau khi extension
dòng khác:
extension=mcrypt.so
extension=zip.so
extension=mongodb.so ; <--- here it is
Cùng với đó kiểm tra, tôi tải lên một phpinfo()
kịch bản nhanh chóng để kiểm tra mà tôi đã sử dụng php.ini
tập tin đúng, và khẳng định rằng tôi. Và không chỉ vậy, trình điều khiển mongodb cũng xuất hiện được tải một cách chính xác!
Loaded Configuration File /etc/php/php.ini
. . .
mongodb support enabled
mongodb version 1.1.1
mongodb stability stable
libmongoc version 1.3.1-dev
libbson version 1.3.0
Vì vậy, tôi đã khởi động lại httpd và thử lại. Không có súc sắc, vẫn không thể tìm thấy lớp học MongoClient
. Vì vậy, tôi đã cố gắng cài đặt nó từ pecl
thay vì trình quản lý gói của phân phối của tôi và tình hình cũng giống như mô tả ở trên.
Vì vậy, đây là tóm tắt nhanh chóng của tình hình:
- Linux kernel 4.3.3
- PHP Version 7.0.1
- phiên bản php-MongoDB 1.1.1
- Có, 1.1.1 supports php7.
- Dường như được định cấu hình đúng và mongodb được bật và hiển thị trong
phpinfo()
. - Đã cố gắng cài đặt trình điều khiển mongodb qua
pecl
và trình quản lý gói của nhà phân phối của tôi.
thông tin khác có thể hữu ích:
- MongoDB Version 3.2.0
mongod
đang chạy- Cũng cố gắng khởi động lại, không có sự thay đổi.
là họ nghiêm trọng ?! ở đây một thư viện không gian người dùng: http://mongodb.github.io/mongo-php-library/. Cảm ơn :) – ianaz
@ianaz cuộc gọi tốt, tôi nên thêm điều đó vào câu trả lời. – dotVezz