php支持memcache

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 directory

cd到任意一个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里看见了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值