2012-05-30 110 views
0

我安裝了Memcached和我也通過鍵入net start「memcached服務器」,啓動該服務,並表示,這項服務已經開始,所以我重新啓動Apache和嘗試了代碼的使用memcached的:memcache無法在Windows上工作?

<?php 
//phpinfo(); 
$memcache = new Memcache; 
$memcache->connect("localhost",11211); //change if necessary 

$tempArray = array('fish', 'cow', 'demon'); 
$temp = serialize($testArray); 

$memcache->add("key", $temp, 60); 
print_r(unserialize($memcache->get("key"))); 


?> 

但它給錯誤:Fatal error: Class 'Memcache' not found in C:\wamp\www\temp.php on line 3 這是否意味着memcache未啓動或其他任何內容?我沒有做任何事情,除了安裝和啓動服務,我需要做任何其他事情,如指定內存和添加服務器或其他任何東西?我正在使用wamp服務器。

+0

權限?嘗試打開命令提示符,因爲管理員 – tigrang

+0

給出了一些錯誤 –

+0

'phpinfo();'並查找已安裝的memcache擴展名。在你看到沒有任何東西之後 - 檢查有關如何安裝它的wamp文檔。 – zerkms

回答

4

這裏是爲我工作的步驟:

網址:How to enable memcache in WAMP

所需的文件

memcached.exe Direct Link 
MSVCP71.DLL Windows DLL Files 
msvcr71.dll 
php_memcache.dll Working memcache for PHP 5.3.4 

步驟

Copy MSVCP71.DLL, msvcr71.dll to C:\windows\sysWOW64 
Copy memcached.exe into C:\memcached 
Click Windows-Key 
Type: CMD 
press: Ctrl-Shift-Enter 
Choose yes 
type: C:\memcached\memcached.exe -d install 
type: C:\memcached\memcached.exe -d start 
Copy php_memcache.dll to C:\wamp\bin\php\php5.3.4\ext 
Restart Apache using Wamp controls 
Enable WAMP -> PHP -> PHP Extensios -> php_memcache 

然後,我打的phpinfo()它不顯示memcache屬性。任何人都可以幫助我安裝wmap。

- 感謝 D.Jeeva

2

確保以管理員身份運行命令提示符,如果您還沒有運行命令提示符。同時確保你已經啓用了memcache,並確保你擁有正確的dll。使用phpinfo()檢查是否啓用了PHP端的memcache。然後運行一個快速腳本來測試memcache是​​否可用。如果您沒有遇到錯誤,請嘗試以下操作:啓用memcache。

<?php 
$memcache = new Memcache; 
$memcache->connect("localhost",11211); //change if necessary 

$tempArray = array('fish', 'cow', 'demon'); 
$temp = serialize($testArray); 

$memcache->add("key", $temp, 60); 
print_r(unserialize($memcache->get("key"))); 
?> 
+0

當我以管理員身份運行命令提示符並運行dir命令時,它會給出此錯誤消息以代替每個文件和文件夾:系統無法在消息文件中找到消息編號爲0x2355e的消息文本申請。所以我仍然繼續...並執行了以下命令集: 'c:\ memcached \ memcached.exe -d install c:\ memcached \ memcached.exe -d start' 我重新啓動了我的服務,然後當我嘗試腳本時,它給了我這個錯誤: '致命的錯誤:Class'Memcache'找不到C:\ wamp \ www \ temp.php在第二行' –

+0

您使用的是cmd的副本還是您重命名了它?該錯誤消息不應以任何方式與memcache相關聯。另外,確保正在使用正確的擴展名,還有用於memcache和memcached的PHP擴展。使用phpinfo()來驗證是否啓用了正確的一個。如果是,並且你有守護進程運行它應該重新啓動後才工作。 – Johnnyoh

+0

不,我沒有使用副本,我沒有重新命名它,當我安裝了memcached,它沒有顯示任何錯誤,我也開始它。 phpinfo()沒有給我任何有關memcached的信息.... @johnnyoh –

2

Memcached服務是不夠的。它本身與PHP無關,並且不易從PHP中使用。爲了使它可以通過PHP使用,您還需要使用MemcacheMemcached PHP擴展,它將處理與服務的通信。看起來你打算使用Memcache。

PHP manual解釋瞭如何在Windows上安裝PECL擴展。 WAMP可能有一個更簡單的機制,我不確定,因爲我不熟悉WAMP。

編輯

,我發現這個blog post有關安裝了Memcached的PHP上WAMP雖然工作。這可能會有幫助。看起來擴展程序可能已經作爲您計算機上的.dll文件提供,您只需編輯php.ini文件以包含擴展名,然後重新啓動Apache。

1

我面對完全一樣的問題。

在我的情況下,問題是我在64-bit系統上運行,但我下載了32-bit memcache dll文件。 我下載後Memcache 2.2.6 VC9 x64 Thread Safe

+0

這也是我的問題。我花了很多年試圖解決這個問題。非常感謝 – Emmanuel

+0

@Memos你不應該在Windows上使用非線程安全版本嗎? –

+0

@Phill Healey,我不這麼認爲。我看不出爲什麼不使用線程安全版本。 – Memos