PHP ने घातक त्रुटि को याद किया: क्लास 'मेमेचे' नहीं मिला


81

मैंने php में मेमेकैड का उपयोग करने के लिए php.net से उदाहरण चिपकाया है और मुझे मिल रहा है:

Fatal error: Class 'Memcache' not found

मेरे पास यह मेरी php.ini में है:

[memcache]
memcache.hash_strategy = "सुसंगत"
memcache.max_failover_attemps = 100
memcache.allow_failover = 1

यहाँ जानकारी क्रमशः php -i और php -m से ली गई है:

php -i | ग्रेप मैं मेम्कैश
memcached
memcached समर्थन => सक्षम
libmemcached संस्करण => 0.37
संचालकों => फ़ाइलें उपयोगकर्ता SQLite memcached बचाने पंजीकृत

php -m | grep -i मेमकेच
मेमकेड

तो php ने एक मॉड्यूल के रूप में मेमेकैल्ड लोड किया है, और php जानकारी कहती है कि यह लोड है और v37 का उपयोग कर रहा है। मैंने अभी तक अपाचे के माध्यम से कोशिश नहीं की है, मैं अभी इसका उपयोग कर रहा हूं। कोई विचार?


1
संभव डुप्लिकेट ... stackoverflow.com/questions/1171313/…

मैंने बस उस पर एक नज़र डाली और मेरे पास पहले से ही मेरे php.ini में सूचीबद्ध एक्सटेंशन है और मैंने पहले ही सुनिश्चित कर लिया है कि मेरा extension_dir सही जगह पर इंगित किया गया है।
jpfuentes2

'MEMCACHE' को स्थापित करने के लिए सरल कमांड के लिए नीचे मेरा उत्तर देखें।
फिल हिले

1
sudo apt-get install php-memcacheमेरे लिए काम किया है। package.ubuntu.com/… उपलब्ध पैकेज दिखाता है।
रयान

जवाबों:


131

PHP में memcached के लिए दो एक्सटेंशन हैं, " memcache " और " memcached "।

ऐसा लगता है कि आप एक ("मेमकेच") का उपयोग करने की कोशिश कर रहे हैं, लेकिन दूसरे को स्थापित किया गया है ("मेमकास्ट")।


4
यह मूर्खतापूर्ण है, लेकिन यह दुर्भाग्य से PHP में लगातार पैटर्न है। बेहतर तरीके से नई चीजों के साथ काम करने के लिए पुराने एक्सटेंशन को अपडेट करने के बजाय, लेकिन पीछे की तरफ कंपटीट को तोड़कर, उन्होंने बस एक नया एक्सटेंशन बनाया। मसलक और मायसकली भी देखें।
चार्ल्स

यह सही समस्या की तरह लगता है। लेकिन मुझे मिलने वाले सभी निर्देश मेमस्कैड को स्थापित करने के लिए कहते प्रतीत होते हैं, लेकिन मेमकेच को देखते हैं। यह थोड़ा भ्रमित करने वाला है।
पैट्रिक

7
ठीक है, मुझे एक साधारण फिक्स मिला (क्योंकि बाकी सब कुछ काम नहीं करता था)। बस इस कमांड को रन करें: sudo aptitude install memcached php5-memcached
पैट्रिक

ध्यान दें कि उन पैकेज नाम केवल कुछ विशिष्ट डेबियन डेरिवेटिव पर काम करेंगे। पैकेज के नाम अन्य वातावरणों में भिन्न होंगे।
चार्ल्स

1
दोनों लोड होने से कोई वास्तविक प्रदर्शन प्रभाव नहीं होना चाहिए, नहीं।
चार्ल्स

22

टिप्पणियों में स्वीकार किए गए उत्तर को अस्वीकार करें, 'मेकचे' को स्थापित करने का सही तरीका है:

sudo apt-get install php5-memcache

नोट Memcache और Memcached दो अलग-अलग सॉफ्टवेयर के संबंधित टुकड़े हैं, जो अक्सर भ्रमित होते हैं।

EDIT यह अब एक पुरानी पोस्ट है मैंने सोचा कि यह उल्लेख के लायक है कि आपको अपने php संस्करण संख्या के साथ php5 को बदलना चाहिए ।


कुछ साल बाद, मुझे लगता है कि यह उत्तर पुराना है। sudo apt-get install php-memcacheमेरे लिए काम किया है। package.ubuntu.com/… उपलब्ध पैकेज दिखाता है।
रयान

1
@ रयान निश्चित रूप से, यह केवल तभी लागू होता है जब PHP5 का उपयोग नहीं किया जाता है। बहुत सारे सर्वर अभी भी PHP5 का उपयोग करते हैं, इसलिए यह उस समय जैसा ही मान्य था। इसके अतिरिक्त प्रश्न को ubuntu-9.10 टैग किया गया है, इसलिए यह मेरे उत्तर को और मान्य करता है क्योंकि यह सीधे उस संस्करण से संबंधित है।
Phill Healey

"याद किया और याद किया" ??
ब्रायन लीशमैन

क्या खिड़कियों के लिए एक समाधान है?
इरफाननवार

1

मुझे इस पोस्ट में समाधान मिला: /programming/11883378/class-memcache-not-found-php# =

मुझे PHP 5.4.4 के लिए काम करने वाली dll फाइलें मिलीं

मैं नहीं जानता कि वे कितने स्थिर हैं, लेकिन वे सुनिश्चित करने के लिए काम करते हैं। क्रेडिट इस लिंक पर जाता है।

http://x32.elijst.nl/php_memcache-5.4-nts-vc9-x86.zip

http://x32.elijst.nl/php_memcache-5.4-vc9-x86.zip

यह 2.2.5.0 संस्करण है, मैंने इसे (PHP 5.4.4 के लिए) संकलन करने के बाद देखा।

कृपया ध्यान दें कि यह 2.2.6 नहीं है, लेकिन काम करता है। मैंने उन्हें अपने एफ़टीपी में भी दिखाया। दर्पण लिंक:

http://mustafabugra.com/resim/php_memcache-5.4-vc9-x86.zip http://mustafabugra.com/resim/php_memcache-5.4-nts-vc9-x86.zip


0

दाईं ओर php_memcache.dll है । मेरे मामले में मैं vc6 संकलक के बजाय vc9 के साथ संकलित उपयोग कर रहा था। एपेटेक त्रुटि लॉग में मुझे कुछ ऐसा मिला:

PHP स्टार्टअप: sqlanywhere: बिल्ड ID = API20090626, TS, VC9 के साथ संकलित मॉड्यूल को प्रारंभ करने में असमर्थ

जांचें कि क्या आपके पास एक ही लॉग है और अलग-अलग संकलक के साथ संकलित किए गए विभिन्न डीएल को डाउनलोड करने का प्रयास करें।


0

OSX उपयोगकर्ताओं के लिए:

Memcached को स्थापित करने के लिए निम्न कमांड चलाएँ:

brew install memcached

-8

मैं wp-config / में चला गया और ऑब्जेक्ट-cache.php और उन्नत-cache.php को हटा दिया और यह मेरे लिए ठीक काम किया।


2
वह सब किया जो आपके वर्डप्रेस इंस्टॉल को किसी भी ऑब्जेक्ट कैशिंग करने में सक्षम होने से रोक रहा था। यह वास्तव में किसी भी चीज के लिए ठीक नहीं है, अकेले ओपी द्वारा पूछे गए प्रश्न को जाने दो।
फिल हीली
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.