Từ: https://github.com/mongodb/mongo-php-driver/issues / 247
Quá trình PHP tải mongodb.so và _mongoc_do_init()
của libmongoc được thực thi, hàm này gọi sasl_client_init () khi được biên dịch với SASL. Tôi đã tìm thấy một số tham chiếu đến sự cố trong các phiên bản Cyrus SASL trước đó trên OS X nếu ứng dụng khách được khởi tạo và phá hủy nhiều lần trong cùng một quá trình; tuy nhiên, tôi mong đợi logic xung quanh _mongoc_do_init()
đảm bảo rằng nó chỉ thực thi một lần cho mỗi quá trình. Tôi cũng không chắc về phiên bản SASL mà bạn đã cài đặt (ngoài thư viện có "2.2" trong tên tệp của nó), vì vậy tôi không chắc đó có phải là một con cá trích đỏ hay không. Tôi sẽ cần liên hệ với các nhà phát triển libmongoc để xác nhận.
Trong thời gian chờ đợi, bạn có thể cung cấp nhật ký của mongodb cài đặt pecl của mình không? Có một số dòng quan tâm ở đó liên quan đến cách SASL được định cấu hình (đáng buồn là không phải số phiên bản chính xác).
Ngoài ra, nếu bạn xây dựng trình điều khiển theo cách thủ công, bạn sẽ có thể sử dụng đối số --with-mongodb-sasl =no để định cấu hình vô hiệu hóa hỗ trợ SASL, điều này có thể khắc phục sự cố cho đến khi chúng tôi có thể chẩn đoán thêm. Các bước xây dựng thủ công từ một trình bao sẽ là:
$ cd /path/to/mongo-php-driver
$ phpize
$ ./configure --with-mongodb-sasl=no
$ make clean && make all && make install
Điều này cũng sẽ yêu cầu khởi tạo mô-đun con git nếu bạn đang nhân bản kho lưu trữ. Nếu không, bạn có thể giải nén tệp PECL tgz và sử dụng các nguồn đó.