प्रेषक: https://github.com/mongodb/mongo-php-driver/issues /247
PHP प्रक्रिया mongodb.so और libmongoc के _mongoc_do_init()
को लोड करती है फ़ंक्शन निष्पादित किया जाता है, जो SASL के साथ संकलित होने पर sasl_client_init() को कॉल करता है। मुझे ओएस एक्स पर साइरस एसएएसएल के पुराने संस्करणों में क्रैश के कुछ संदर्भ मिले यदि क्लाइंट को एक ही प्रक्रिया में कई बार प्रारंभ और नष्ट किया जाता है; हालांकि, मैं _mongoc_do_init()
. के आसपास के तर्क की अपेक्षा करता हूं यह सुनिश्चित करता है कि यह प्रति प्रक्रिया केवल एक बार निष्पादित हो। मुझे आपके द्वारा इंस्टॉल किए गए एसएएसएल के संस्करण के बारे में भी निश्चित नहीं है (लाइब्रेरी से परे इसके फ़ाइल नाम में "2.2" है), इसलिए मुझे यकीन नहीं है कि यह एक लाल हेरिंग है। पुष्टि करने के लिए मुझे libmongoc devs के साथ अनुवर्ती कार्रवाई करनी होगी।
इस बीच, क्या आप अपने पीईसीएल इंस्टॉल मोंगोडब का लॉग प्रदान कर सकते हैं? एसएएसएल को कैसे कॉन्फ़िगर किया जाता है (दुख की बात है, सटीक संस्करण संख्या नहीं) से संबंधित रुचि की कुछ पंक्तियाँ हैं।
साथ ही, यदि आप मैन्युअल रूप से ड्राइवर बनाते हैं, तो आपको SASL समर्थन को अक्षम करने के लिए कॉन्फ़िगर करने के लिए --with-mongodb-sasl=no तर्क का उपयोग करने में सक्षम होना चाहिए, जो समस्या के आसपास काम कर सकता है जब तक कि हम इसका और निदान नहीं कर सकते। शेल से मैन्युअल निर्माण के चरण होंगे:
$ cd /path/to/mongo-php-driver
$ phpize
$ ./configure --with-mongodb-sasl=no
$ make clean && make all && make install
यदि आप रिपॉजिटरी को क्लोन कर रहे हैं तो इसके लिए git सबमॉड्यूल को इनिशियलाइज़ करने की भी आवश्यकता होगी। अन्यथा, आपको PECL tgz फ़ाइल निकालने और उन स्रोतों का उपयोग करने में सक्षम होना चाहिए।