部署项目时出现下面的错误:
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即可。