2009-07-23 22 views
15

मेरे पास मेमकैच स्थापित है और PHP ऐप्स के लिए अपाचे (v2.2) के माध्यम से चल रहा है, लेकिन जब मैं कमांड लाइन में .php फ़ाइल चलाने की कोशिश करता हूं तो मुझे यह त्रुटि मिलती है:'मेमकैच' कमांड लाइन में नहीं मिला PHP स्क्रिप्ट

Fatal error: Class 'Memcache' not found in /usr/local/Matters/app/matters-common/connection.php on line 94 

लाइन 94 है:

$memcache = new Memcache; 

अन्य जानकारी:

CentOS 5.2
पीएच पी 5.2.5 (CLI) (बनाया: 20 फ़र, 2008 21:13:12)
जेंड इंजन v2.2.0, कॉपीराइट (c) 1998-2007 Zend टेक्नोलॉजीज
अपाचे v2.2.8

उत्तर

25

संभवतः आपके पास अपाचे और कमांड लाइन (क्ली) के लिए सेट की गई अलग php.ini फ़ाइलें हैं।

हां, तो आप अपने CLI php.ini फ़ाइल के लिए निम्न जोड़ने के लिए की जरूरत है:

extension=memcache.so 

उबंटू पर यह /etc/php5/cli/php.ini

में है यह तो काम कर रहा है, तो यदि आप कमांड लाइन पर php -m चलाते हैं तो memcache मॉड्यूल की सूची में प्रकट होना चाहिए।

वैकल्पिक रूप से, आप एक ही सामग्री के साथ फ़ाइल /etc/php5/cond.d/memcache.ini बना सकते हैं।

+0

php -m Ran और इसके प्रदर्शित न होने – rjstelling

+0

किसी अन्य के लिए काम कर रहे हैं मॉड्यूल: आप सेटिंग्स, जहां सूची आप देखेंगे के शीर्ष के निकट कहीं जो php.ini किया जा रहा है की एक लंबी सूची मिल जाएगा CLI? क्या cli php.ini फ़ाइल में "extension_dir" सेट है? अगर memcache.so डिफ़ॉल्ट निर्देशिका में है ( /usr/lib/php5/20060613/मेरे लिए) तो आप extension_dir टिप्पणी कर सकते हैं। –

5

ऐसा नहीं है कि संभव है आपके पास सीएलआई मोड के लिए एक अलग php.ini फ़ाइल है। इस फ़ाइल में memcache एक्सटेंशन शामिल नहीं हो सकता है।

0

सादगी खातिर मैं प्रयोग किया है:

php -c /etc/php.ini ./cli-script.php 
+0

एक देव वातावरण में मैं अपने cli php.ini को अपाचे के साथ एक सिम्लिंक के साथ प्रतिस्थापित करता हूं, इसलिए मेरे पास केवल एक फ़ाइल है (डिफ़ॉल्ट रूप से उबंटू पर केवल अंतर ही स्मृति सीमा कमांड लाइन पर असीमित पर सेट होती है)। –

2

मैं त्रुटि इस तरह का था और मैं भी php किया मैं | grep memcache और यह कहता है कि memcache सक्षम है, लेकिन समस्या का समाधान करने वाला मेरा समाधान था जब मैंने php.ini संपादित किया था, मैंने एक्सटेंशन_dir = "./" पंक्ति को एक्सटेंशन निर्देशिका के पूर्ण पथ में बस संशोधित किया जो अब इस तरह दिखता है, extension_dir = "/ usr/local/lib" - आपको यह जांचने की आवश्यकता है कि PHP की विस्तार निर्देशिका कहां रहती है और सुनिश्चित करें कि memcache.so वहाँ है ..

तब मैंने बस httpd को पुनरारंभ किया और समस्या ठीक हो गई।

आप विस्तृत चरण यहाँ देख सकते हैं:

http://joemarie-aliling.com/223/php-programming/php-memcache-not-found-problem/

0

आप नहीं जानते कि जो php.ini अपने आदेश पंक्ति उपयोग कर रहा है, प्रकार php मैं।

Configuration File (php.ini) Path => /Applications/MAMP/bin/php/php5.3.6/conf 
Loaded Configuration File => /Applications/MAMP/bin/php/php5.3.6/conf/php.ini 
Scan this dir for additional .ini files => (none) 
Additional .ini files parsed => (none) 
संबंधित मुद्दे