pecl mongo इंस्टॉल करें - गलत मॉड्यूल एपीआई के साथ संकलन करता है


9

यहाँ Ubuntu 12.04 के साथ काम करना, nginx और php5-fpm

मैं php 5.3 पर अच्छी तरह से काम कर रहा था, तब मैंने ondrej / php5 ppa को जोड़ा और php5.4 में अपडेट किया। यह GD और CURL एक्सटेंशन रखता है, लेकिन मानगो नहीं। मैंने php.ini फ़ाइल में लाइन को फिर से जोड़ा, और कुछ भी नहीं। तब मैंने स्टार्टअप त्रुटियों को सक्षम किया और इसे प्राप्त किया:

PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/mongo.so' - /usr/lib/php5/20100525/mongo.so: cannot open shared object file: No such file or directory

इसलिए, जंगली अनुमान, मैंने find -name 'mongo.so'20090626 / से 20100525 / ... तक फ़ाइल को स्थानांतरित किया और इस त्रुटि के परिणामस्वरूप:

PHP Startup: mongo: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20100525
These options need to match

मैंने तब किया था pecl uninstall mongoऔर pecl install mongo- जिसने 20090626 / में नई mongo.so फाइल बनाई थी।

मैं यह सब करने के लिए थोड़े नया हूँ इसलिए उम्मीद है कि यह ठीक करने के लिए एक अंधा आसान गलती है! मुझे सिर्फ मोंगो को वापस लाने और चलाने की आवश्यकता है।

जवाबों:


12

मेरा अनुमान होगा:

  • pecl install mongoवास्तव में एक पूर्व-निर्मित बाइनरी स्थापित कर रहा है (जो वास्तव में गूंगा होगा, लेकिन लगभग आश्चर्यचकित नहीं होगा); या
  • आपने अभी भी php5-devअपने 5.3 इंस्टालेशन के आस-पास बैठे पुराने पैकेज को प्राप्त कर लिया है, और pecl5.4 वर्जन के बजाय इसे ढूंढ और इस्तेमाल कर रहे हैं। अपने PHP से संबंधित संकुल सूची पर एक नज़र डालें ( dpkg -l '*php*') और देखें कि क्या कोई 5.3 संकुल शेष है, और उन्हें अपग्रेड करें।

मैं बस इसी के साथ अपने ही सवाल का जवाब दे रहा था! धन्यवाद!
काविसगेल

तो वह कौन सा था?
Womble

2
मुझे अपडेट करना था php5-dev, मोंगो को अनइंस्टॉल करना था फिर इंस्टॉल करना।
kavisiegel

मेरे लिए पूरी तरह से काम किया
ओलिवर बेयस-शेल्टन

2

महान दिमाग एक जैसे सोचते हैं, मैं क्या कर रहा हूं, यह जानने के बाद पोस्ट किए गए पल। उसका उत्तर सही है और मेरा उससे पहले तो यह वही है जो मैं उत्तर के रूप में स्वीकार करूंगा, लेकिन भविष्य में संदर्भ के लिए, समाधान यह था:

apt-get update
apt-get install php5-dev
pecl uninstall mongo
pecl install mongo
/etc/init.d/php5-fpm restart

और हां, mongo.so पहले से ही php.ini में एक तरह से था कि pecl ने इसे हटाया नहीं था, जिससे इसे अपग्रेड करने में थोड़ी आसानी हुई।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.