2010-04-17 165 views
72

我貼的例子從php.net在PHP中使用Memcached和我越來越:PHP memcached的致命錯誤:類「內存緩存」未找到

Fatal error: Class 'Memcache' not found 

我有這個在我的php.ini:

[memcache]
memcache.hash_strategy = "consistent"
memcache.max_failover_attemps = 100
memcache.allow_failover = 1

下面是PHP -i和php -m分別資訊:

php -i | grep -i memcache
memcached
memcached support => enabled
libmemcached version => 0.37
Registered save handlers => files user sqlite memcached

php -m | grep -i memcache
memcached

所以PHP似乎已經加載MEMC疼痛作爲一個模塊,和PHP信息說,它已加載並使用訴.37。我還沒有通過Apache嘗試,我現在只通過cli使用它。有什麼想法嗎?

+1

可能重複... HTTP://stackoverflow.com/questions/1171313/memcache-not -found-in-command-line-php-script – 2010-04-17 16:10:57

+0

我只是看了一下,我已經有了我的php.ini中列出的擴展名,我已經確保我的extension_dir指向正確的位置。 – jpfuentes2 2010-04-17 16:26:24

+0

查看我的答案,下面是安裝'MEMCACHE'的簡單命令。 – 2016-11-22 11:15:29

回答

111

在PHP中有兩個memcached擴展,「memcache」和「memcached」。

它看起來像你試圖使用一個(「memcache」),但另一個是安裝(「memcached」)。

+4

這很愚蠢,但它是PHP中不幸的頻繁模式。與其更新較舊的擴展以更好的方式處理較新的事物,而不是更新舊的擴展,他們只是創建了新的擴展。另請參閱mysql和mysqli。 – Charles 2010-04-17 20:48:48

+0

這似乎是正確的問題。但是我發現的所有說明似乎都說要安裝memcached,但看到memcache。這有點令人困惑。 – pthurmond 2013-06-27 18:02:44

+6

好的,我發現一個簡單的修復(因爲一切似乎不起作用)。只需運行以下命令:sudo aptitude install memcached php5-memcached – pthurmond 2013-06-27 18:36:20

0

右側是php_memcache.dll。在我的情況下,我使用編譯與vc9而不是vc6編譯器的lib。在apatche錯誤日誌我得到的東西,如:

PHP Startup: sqlanywhere: Unable to initialize module Module compiled with build ID=API20090626, TS,VC9 PHP compiled with build ID=API20090626, TS,VC6 These options need to match

檢查,如果你有相同的日誌,並嘗試下載與不同編譯器編譯不同的dll。

1

我發現在這篇文章的解決方案:https://stackoverflow.com/questions/11883378/class-memcache-not-found-php#=

我找到了工作的DLL文件到PHP 5.4.4

我不專有技術穩定的他們,但他們肯定工作。積分轉到此鏈接。

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,但工作。我也用自己的FTP鏡像它們。鏡子鏈接:

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

-5

我走進WP-配置/和刪除的對象-cache.php和和先進-cache.php和與它爲我工作得很好。

+1

哈哈,對你有好處;) – Piero 2017-01-27 16:55:47

19

Dispite什麼公認的答案在評論中說,安裝「內存緩存」正確的做法是:

sudo apt-get install php5-memcache 
+0

幾年後,我覺得這個答案已經過時了。 'sudo apt-get安裝php-memcache'是爲我工作的。 https://packages.ubuntu.com/search?keywords=memcache&searchon=names&suite=yakkety§ion=all顯示可用套餐。 – Ryan 2017-07-05 22:00:06

+1

@Ryan當然,這隻適用於不使用PHP5。許多服務器仍然使用PHP5,因此它與當時一樣有效。另外,這個問題被標記爲ubuntu-9.10,所以這進一步驗證了我的答案,因爲它直接與該版本相關。 – 2017-07-06 11:46:10

相關問題