memcache个人理解主要是用来管理内存的,php和memcache结合就可以使php吧一些数据保存在memcache管理的内存里,方便管理,也快,还支持多台服务器共享数据,废话不多说.
分为linux和windows
1)linux和类Unix可以从以下地址下载memcached和libevent,由于安装memcache需要libevent支持,所以需要先安装libevent
memcached官方版本下载地址:http://www.danga.com/memcached/
libevent官方版本下载地址:http://monkey.org/%7Eprovos/libevent/
安装libevent:
$tar xvzf libevent-***-stable.tar.gz
$cd libevent-***-stable
$./configure --prefix=/usr/local/libevent#选定libevent安装目录
$make
$make install
然后安装memcached
$tar xvzf memcached-***.tar.gz
$cd memcached-***
$./configure --prefix=/usr/local/memcache –with-libevent=/usr/local/libevent#添加libevent安装目录
$make
$make install
然后启动memcached,全的参数可以用/usr/local/memcached/bin/memcached -h查看
简单介绍几个:
-d 以守护程序(daemon)方式运行 memcached;
-m 设置 memcached 可以使用的内存大小,单位为 M;
-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
-u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。
可以这样启动:
$/usr/local/memcached/bin/memcached -d -m 128 -l 127.0.0.1 -p 11211 -u nobody
这是本机上做着玩的所以ip的127.0.0.1
启动时可能遇到错误
error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
加载不到libevent类库
可以用$DL_DEBUG=libs ./memcached –v
显示可能如下:
20421: find library=libevent-1.4.so.2; searching
20421: search cache=/etc/ld.so.cache
20421: search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686
/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib (system search path)
20421: trying file=/lib/tls/i686/sse2/libevent-1.4.so.2
20421: trying file=/lib/tls/i686/libevent-1.4.so.2
20421: trying file=/lib/tls/sse2/libevent-1.4.so.2
20421: trying file=/lib/tls/libevent-1.4.so.2
20421: trying file=/lib/i686/sse2/libevent-1.4.so.2
20421: trying file=/lib/i686/libevent-1.4.so.2
20421: trying file=/lib/sse2/libevent-1.4.so.2
20421: trying file=/lib/libevent-1.4.so.2
20421: trying file=/usr/lib/tls/i686/sse2/libevent-1.4.so.2
20421: trying file=/usr/lib/tls/i686/libevent-1.4.so.2
20421: trying file=/usr/lib/tls/sse2/libevent-1.4.so.2
20421: trying file=/usr/lib/tls/libevent-1.4.so.2
20421: trying file=/usr/lib/i686/sse2/libevent-1.4.so.2
20421: trying file=/usr/lib/i686/libevent-1.4.so.2
20421: trying file=/usr/lib/sse2/libevent-1.4.so.2
20421: trying file=/usr/lib/libevent-1.4.so.2
20421:
./memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directorycd到任意一个trying file后面的目录然后做个libevent链接
$ln -s /usr/local/libevent/lib/libevent-1.4.so.2
既可.
然后再php里开启memcache并且让session保存在memcache中,下面我用的是动态加载的方法,类似于windows下的dll
方法如下:
上http://pecl.php.net/package/memcache下载memcache
$tar xvzf memcache-***.tgz
$cd memcache-**
$/usr/www/php/bin/phpize #这里我的php装在/usr/www/php下
$./configure --enable-memcache --with -php-config=/usr/local/php/bin/php-config --with -zlib-dir
$make
$make install
然后会得到提示Installing shared extensions:/usr/www/php/lib/php/extensions/no-debug-non-zts-20060613/
记下这个路径,查看phpinfo找到加载的php.ini的位置修改里面的
extension_dir="/usr/www/php/lib/php/extensions/no-debug-non-zts-20060613/"
添加
extension=memcache.so
这样让php支持memcache系列函数.
让session保存在memcache中,修改php.ini中的
session.save_path="tcp://localhost:11211?persistent=1&weight=2&timeout=2&retry_interval=10, ,tcp://localhost:1121"#这里我就一台机器
session.save_handle=memcache
重启apache配置应该就完毕了
查看下phpinfo里的session和memcache
2)windows下
win下上http://jehiah.cz/projects/memcached-win32/下载memcache的win下版本
然后解压memcached-***-win32.zip
然后开始->运行->cmd
进到memcached-***-win32.zip解压后的文件夹
运行memcached.exe -d install#安装服务,在vista及以上操作系统里需要有管理员权限
memcached.exe –d start#启动也有参数,不过很少在win下使用,可以用memcached.exe -h查看帮助
然后上http://downloads.php.net/pierre/下载对应的pecl模块包,解压至,把php_memcache.dll文件拷贝到php的extension_dir目录下
容纳后修改php.ini添加
extension=php_memcache.dll
如果还要吧session放在memcache中,和linux一样需要修改
session.save_path和session.save_handle=memcache
重启apache就可以在phpinfo里看见了