部署項目時出現下面的錯誤:
Fatal error: Class 'Memcache' not found in E:\www\shop\library\Class\Memcach,顯然是因爲memcache出問題了,用phpinfo()一看,發現沒有memcache這一項,因爲我是安裝的php5.4.13,難道是最新版沒有集成memcache?去../ext目錄下一看,果然沒有php_memcache.dll這個包,於是下載php_memcache.dll(我下載的php_memcache.dll版本是5.4.11),記得把php_memcache.dll拷貝到../ext目錄下!
在cmd環境下,如果以普通用戶的身份直接安裝會報錯“ failed to install service or service already installed”:
解決辦法如下:
1、首先找出cmd.exe的原文件(windows/system32/cmd.exe),右擊以管理員身份運行
2、轉到D:\webEve\memcached(memcached.exe存放目錄),輸入命令 memcached.exe -d install
3、再輸入:'D:\webEve\memcached\memcached.exe -d start’ 即可(注意:以後memcached將作爲windows的一個服務每次開機時自動啓動);
4、在php.ini 加入一行 ‘extension=php_memcache.dll’
5、重新啓動Apache,然後查看一下phpinfo,如果有memcache,那麼就說明安裝成功!
問題又來了,之前放在D盤D:\webEve\memcached目錄下的 memcached.exe沒法刪除,因爲它已經作爲系統服務開機啓動並寫入註冊表了,如果要將該文件移到別的地方的話,可以在cmd中輸入:
(1)、memcached.exe -d stop //停止服務
(2)、memcached.exe -d uninstall //卸載
按照上面的步驟重新安裝後,再去看註冊表HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/memcached Server下面的ImagePath項,你會發現,已經改成了當前的安裝路徑;
好了,重啓apache,如果顯示如下:
Notice: Memcache::get(): Server 127.0.0.1 (tcp 80) failed with: Malformed END line (0) in E:\……\ZF\Zend\Cache\Backend\Memcached.php on line 180
這是因爲memcache默認端口爲11211,可以在註冊表中將"d:\memcached\memcached.exe" -d runservice改爲"d:\memcached\memcached.exe" -p 11211 -m 128 -d runservice即可。