常规方法安装memcached以后,进程中没有成功启动memcached.exe,并且php也没有成功加载memcached。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
权限问题:
参考下windows下文件移动后权限的原则。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
处理过程如下:
网上搜索了下:
这篇文章讲的还算是很清楚的:
【PHP学习笔记】Windows 下Memcache安装配置
以前学习php,没怎么注意缓存,为了跟上速度,今天决定装了下。
首先准备好安装文件,点击这里下载。(我下载是安装包,如果用源码安装看了下文档有点麻烦,所以这里偷了下懒。有需要的话可以点击这里)
安装Memcache
下面是详细说明:
1.解压缩到某个路径下,这里我放到D:\memcached1.2.4
2.通过命令行安装,首先进入该目录下,输入memcached.ext -d install
3.上一步不出意外的话,就安装成功了。那么就可以启动了。同样的输入memcached.ext -d start
4.OK,现在可以看看你的任务管理器有没有一个memcached.exe的进程了
让PHP加载Memcache
很简单。不过还没完,你只是安装了一个memcached caching server,还没有和php建立关联。所以在php程序里还不能运用。
由于我的php版本是5.2.17的,下载的php_memcache.dll也要是对应的。如果你的php是5.3+的,可以在这里下载
php_memcache-cvs-20090703-5.3-nts-VC6-x86.zip
http://downloads.php.net/pierre/php_memcache-2.2.6-5.3-nts-vc9-x86.zip
官方地址:http://downloads.php.net/pierre/
安装与平时添加扩展完全一样,把dll文件拷到你的php目录的ext目录下,然后,
在php.ini中添加extension=php_memcache.dll,重启服务器,在phpinfo里面就应该可以看到配置信息,如下:
测试Memcache
1 <?php
2 $mem = new Memcache;
3 $mem->connect('127.0.0.1', 11211);
4 $mem->set('key', 'This is a test!', 0, 60);
5 $val = $mem->get('key');
6 echo $val; //output This is a test!
7 echo '<br/>';
8 echo '我的Memcache版本:'.$mem->getVersion();//output 1.2.4
9 ?>
注意:第2行部分,connect里面的参数第一个表示服务器地址,第二个表示端口号,具体函数详细说明可以查看这里。
提出问题,及解决
还是第2行,第一个参数是ip地址,所以,尝试用localhost试了下,结果,提示memcache_connect() [function.memcache-connect]: Can’t connect to localhost:11211
google了下,这里需要更改hosts文件,添加一行127.0.0.1 localhost,如果已经存在了,只需要把#去掉就行。
这样你可以再试试看,就可以了。
另外,如果在安装Memcache时第一步出现“MSVCP71.dll is missing”,可以查看这里
参考资料
2.Installing Memcached for PHP 5.3 on Windows 7
4.How to install Memcached on Windows machine
另外:本来想定量测试下使用缓存和不用缓存的具体差别,WinCacheGrind还有待研究中,不是很会用……杯具!
还有需要php5.2版本对应的memcache.dll文件可以点击这里下载!
一、
因为在开始执行安装的时候弹出了Windows防火墙窗口,就以为是防火墙的原因,就又重新按照上面教程下载了安装文件,并重新安装了一遍,在防火墙“例外”中也添加了例外的程序。
这时看到任务管理器中已经有memcached.exe进程了。但是重启iis还没有看到php加载memcached。不知什么原因??在php.ini中修改了extention_dir的路径为绝对路径也还是不行。
继续网上搜索了下,没有看到相关处理方法,就自己测试:
看到“由于我的php版本是5.2.17的,下载的php_memcache.dll也要是对应的。如果你的php是5.3+的,可以在这里下载”这句话,开始以为是php_memcached.dll和php版本不对应,就又在网上找了很多php_memcached.dll下载的地址:
比如:http://dl.dbank.com/c00gag1urb和http://k1029.com/wp-content/uploads/2012/01/php_memcache-dll-windows-x86.zip这两个替换了我原有的php_memcached.dll,重启iis还是不行。
http://downloads.php.net/pierre/这个官方的下载地址不知做什么用的?
还有找到了memcached的官方主页:http://pecl.php.net/package/memcached
二、开始怀疑是不是php.ini其他配置影响了php对memcached的加载?
就换了我本地机器上可以成功加载memcached的php.ini替换了服务器上的php.ini,重启iis还是不行,然后又把php_memcached.dll换回了我安装时自己带的php_memcached.dll,重启iis后竟然发现可以了。这时我把php.ini再换为原来服务器上配置的php.ini重启iis也可以了。
此篇文章由DurkBlue博客申请发布,转载吧请注明来处