2010-05-14 9 views
6

मैं स्थापित के रूप में/कॉन्फ़िगर किया गया सूचीबद्ध दोनों मॉड्यूल हो रही है जब मैं का उपयोग करें:PHP एक्सटेंशन (memcache | memcached) phpinfo() में नहीं दिख रहा है लेकिन php-m और php -i में दिखा रहा है?

php -m 

या अगर मैं का उपयोग करें:

php -i 

लेकिन जब मैं का उपयोग करें:

$m = new Memcache; 
// or 
$m = new Memcache(); 
// or 
$m = new Memcached(); 
//or 
$m = new Memcached; 

मैं निम्नलिखित त्रुटि:

Fatal error: Class 'Memcached' not found 

मैं मैक पर चल रहा हूं - ओएस एक्स (10.5.7) अपाचे & PHP के डिफ़ॉल्ट इंस्टॉल के साथ। इसके अतिरिक्त, मैंने 127.0.0.1:11211 पर एक डेमॉन के रूप में चल रहा है और php-memcached लाइब्रेरी द्वारा आवश्यक libmemcache है। मैंने अपाचे को कई बार फिर से शुरू किया है और यहां तक ​​कि मशीन को फिर से शुरू किया है।

क्या किसी को पता है कि मॉड्यूल/एक्सटेंशन कमांड लाइन में क्यों दिखाई देते हैं लेकिन मेरे phpinfo() में नहीं? मैं सचमुच स्टंप हो गया हूं, गुगलिंग के 3 घंटे बाद, मैं बस हारने के लिए तैयार हूं।

और कृपया ध्यान रखें, मेरे phpinfo() इस प्रकार मेरी INI फ़ाइलों आउटपुट और वे दोनों एक ही फ़ाइल हैं:

Configuration File (php.ini) Path: /etc 
Loaded Configuration File: /private/etc/php.ini 

अद्यतन:

अपाचे विस्तार को लोड करने विफल हो रहा है ।

[Fri May 14 04:22:26 2010] [warn] Init: Session Cache is not configured [hint: SSLSessionCache] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/memcached.so' - (null) in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/memcache.so' - (null) in Unknown on line 0

क्या किसी को पता है कि यह क्यों होगा या यह कैसे होगा? निश्चित रूप से संदर्भित दोनों फाइलें हैं। क्या मुझे इस प्रश्न को सर्वर गलती पर ले जाना चाहिए?

उत्तर

3

क्योंकि दोनों संस्करणों स्थान में अलग php.ini
जगह अपने php.ini का उपयोग

outout phpinfo() में उल्लेख किया
+0

यह मेरा phpinfo उत्पादन होता है: विन्यास फ़ाइल (php.ini) पथ: \t/आदि लोड विन्यास फ़ाइल: \t /private/etc/php.ini दोनों एक ही हैं। – Auston

4

आपका वेबसर्वर शायद mod_php उपयोग कर रहा है, जो स्टैंडअलोन से कोड का एक अलग सा है (CLI) दुभाषिया। यदि वे दोनों एक ही ini फ़ाइल का उपयोग कर रहे हैं, और memcache एक्सटेंशन ini फ़ाइल में कॉन्फ़िगर किया गया है, तो यह किसी कारण से लगता है, mod_php एक्सटेंशन लोड करने में विफल रहा है - स्टार्टअप त्रुटियों के लिए अपने वेबसर्वर त्रुटि_लॉग को जांचें।

यह हो सकता है कि mod_php को memcache समर्थन के बिना संकलित किया गया हो (अधिकांश एक्सटेंशन को php कोड में एक स्टब फ़ाइल से जुड़ा होना चाहिए, भले ही कोड का बड़ा हिस्सा रन टाइम तक लिंक न हो)। या यह साझा ऑब्जेक्ट फ़ाइल पर अनुमति समस्या हो सकती है। या आपका वेबसर्वर क्रोट चला रहा है, और एक्सटेंशन को खोजने में असमर्थ (जिसका अर्थ यह भी होगा कि हालांकि आईएनआई फाइलों में एक ही पथ दिखता है, यह विभिन्न जड़ों के सापेक्ष है)।

HTH

सी

+0

(या हो सकता है कि आपने कॉन्फ़िगरेशन बदलने के बाद से अपने वेबसर्वर को पुनरारंभ नहीं किया है?) – symcbean

+0

यह एक्सटेंशन लोड करने में विफल रहा है! धन्यवाद! – Auston

2

मुझे लगता है कि इस मुद्दे को अनुमतियों के आसपास घूमती है। जब आप कॉमांड लाइन से php चलाते हैं, तो यह उपयोगकर्ता द्वारा आवेदक के रूप में चलता है। अपाचे मॉड्यूल के रूप में चलाने पर, यह "कोई नहीं" के रूप में चलता है।

मुझे लगता है कि memcached.so फ़ाइल, या जिस निर्देशिका में है, उसके पास उचित अनुमति नहीं है।

1

मैं इस पोस्ट पर stumpled और मेरे php -i में विस्तार के साथ एक ही समस्या थी, लेकिन phpinfo() में नहीं। सेल्सिनक्सCentOS मशीन पर मेरा एक अनुमति समस्या थी। मुझे स्वामित्व और अनुमतियां बदलनी पड़ीं और अब यह उम्मीद के अनुसार काम कर रहा है।

-2

नीचे दिए गए अनुसार पर्यावरण चर में PHP पथ सेट करें। "मेरा कंप्यूटर" पर राइट-क्लिक करें गुण उन्नत टैब> पर्यावरण चर सिस्टम चर के तहत, "पथ" ढूंढने के लिए नीचे स्क्रॉल करें, संपादित करें पर क्लिक करें और क्लिक करें। अंत में अपने PHP इंस्टॉल में पथ जोड़ें (अर्ध-कॉलन से पहले सुनिश्चित करें ";")। उदाहरण: "; सी: \ php7" ठीक क्लिक करें।

+0

यह मूल प्रश्न का उत्तर नहीं देता है। – chrisis

संबंधित मुद्दे