MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB-PHP-Treiber, der Apache auf XAMPP OS X zum Scheitern bringt

Von: https://github.com/mongodb/mongo-php-driver/issues /247

Der PHP-Prozess lädt mongodb.so und _mongoc_do_init() von libmongoc Funktion ausgeführt, die sasl_client_init() aufruft, wenn sie mit SASL kompiliert wird. Ich habe einige Hinweise auf Abstürze in früheren Versionen von Cyrus SASL unter OS X gefunden, wenn der Client mehrmals im selben Prozess initialisiert und zerstört wird; Ich würde jedoch die Logik um _mongoc_do_init() erwarten stellt sicher, dass es nur einmal pro Prozess ausgeführt wird. Ich bin mir auch nicht sicher, welche Version von SASL Sie installiert haben (abgesehen von der Bibliothek mit "2.2" im Dateinamen), also bin ich mir nicht sicher, ob das ein Ablenkungsmanöver ist. Ich muss mich mit den libmongoc-Entwicklern in Verbindung setzen, um dies zu bestätigen.

Könnten Sie in der Zwischenzeit ein Protokoll Ihrer Pecl-Installation von Mongodb bereitstellen? Dort gibt es einige interessante Zeilen, die sich darauf beziehen, wie SASL konfiguriert ist (leider nicht die genaue Versionsnummer).

Wenn Sie den Treiber manuell erstellen, sollten Sie außerdem in der Lage sein, das Argument --with-mongodb-sasl=no zu verwenden, um die SASL-Unterstützung zu deaktivieren, wodurch das Problem möglicherweise umgangen wird, bis wir es weiter diagnostizieren können. Die manuellen Build-Schritte aus einer Shell wären:

$ cd /path/to/mongo-php-driver
$ phpize
$ ./configure --with-mongodb-sasl=no
$ make clean && make all && make install

Dies würde auch die Initialisierung von Git-Submodulen erfordern, wenn Sie das Repository klonen. Andernfalls sollten Sie in der Lage sein, die PECL-tgz-Datei zu extrahieren und diese Quellen zu verwenden.