设为首页 收藏本站
查看: 1163|回复: 0

[经验分享] php session保存到memcache或者memcached中

[复制链接]

尚未签到

发表于 2015-8-31 10:25:44 | 显示全部楼层 |阅读模式
  本教程叫你如何将php 的session存储在 memcached中,参考了好多网页,发现错误百出,最后自己还是测试成功了,现在将结果结果分享。
  1-)系统环境 : elastix2.4 (centos5.9 x86_64) ,其中php版本是古董级的 php 5.1.6
  这里要说明的是:php的版本和安装php的memcached扩展有相当大的关系。
  2-)安装memcached server端程序,如下:
  [iyunv@elastix82 ~]# yum -y install memcached
[iyunv@elastix82 ~]# rpm -qa|grep memcache
libmemcached-0.31-1.1.el5
memcached-1.4.5-1.el5
libmemcached-0.31-1.1.el5
libmemcached-devel-0.31-1.1.el5
libmemcached-devel-0.
不需要任何配置,启动memcached服务器进程
[iyunv@elastix82 ~]# /etc/init.d/memcached start
Starting memcached:                                        [  OK  ]
[iyunv@elastix82 ~]#
[iyunv@elastix82 ~]# lsof -i:11211
COMMAND     PID      USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
memcached 28227 memcached   26u  IPv4 536953      0t0  TCP *:11211 (LISTEN)
memcached 28227 memcached   27u  IPv4 536956      0t0  UDP *:11211
[iyunv@elastix82 ~]#
  
  3-)给centos5.9自带的php安装 memcached扩展
参考了如下网站:
http://pecl.php.net/package/memcached
下面几个是参考方法,其实都有错误:
http://koda.iteye.com/blog/466667
http://imysql.cn/node/215
下面是排错参考网站:
http://cn2.php.net/manual/zh/book.memcache.php
http://sndapk.blog.iyunv.com/5385144/945441
http://stackoverflow.com/questions/4057777/php-cant-find-save-handler-memcache
总之参考网上乱七八糟的方法,发现网上流传的方法存在如下bug:
1)网上大多是说,修改php.ini如下后即可以实现 session存入memcached中,
session.save_handler = memcache   【有错误,具体情况具体写法】
session.save_path = "tcp://127.0.0.1:11211"
其实,据我搜资料,有一个叫memcache和memcached的扩展,我成功测试的是在官网上下载的memcached这个扩展,
http://pecl.php.net/package/memcached
所以我的 session.save_handler = memcached ,而不是网上前篇一律的 session.save_handler = memcache。否则,从apache的错误访问日志中可以看到如下:
[iyunv@elastix82 html]# tailf /var/log/httpd/error_log
[Fri Sep 13 15:25:35 2013] [error] [client 192.168.1.79] PHP Warning:  session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot find save handler memcache in /var/www/html/ss.php on line 2
[Fri Sep 13 15:26:47 2013] [notice] caught SIGTERM, shutting down
原因是,不认识 memcache 这个 handler。
2) 强烈鄙视网上抄袭来抄袭去的,不负责任的教程。搜了好多好多相关文章,几乎没有一篇说过实现这个功能需要php安装memcach或者memcached扩展,都仅仅只是说了要修改php.ini的两行而已。本人在这里强调一次,要实行php session存入memcached,需要添加php的memcached扩展,扩展下载地址为:
http://pecl.php.net/package/memcached
3) 在安装php的memcached扩展过程中,还是件头疼的事情,原因后来找到了——高版本的memcached不在支持以前老版本的php,比如我的就是php 5.1.6 ,古董级了。后来我硬是下了3个版本的memcached,才把它装上。我用的版本是 memcached-0.1.4 ,其它两个高版本无法安装上。官网也给出了说明,需要php version > 5.2
[iyunv@elastix82 session]# ls
memcached-0.1.4  memcached-0.1.4.tgz  memcached-1.0.2  memcached-1.0.2.tgz  memcached-2.1.0  memcached-2.1.0.tgz
[iyunv@elastix82 session]#
4) 扩展安装方法:
可能编译用到如下库
[iyunv@elastix82 ~]# yum -y install libmemcached libmemcached-devel
剩下的 就是 phpize 和 ./configure --with-php-config=/usr/bin/php-config ,以及复制*.so 到 php的modules/目录,并修改php.ini ,最后phpinfo结果如下:
[iyunv@elastix82 ~]# php --info |grep -i memcache
memcached
memcached support => enabled
libmemcached version => 0.31
Registered save handlers => files user memcached
session.save_handler => memcached => memcached
[iyunv@elastix82 ~]#
4-)安装完成后重启apache,一切ok。收工!

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-106699-1-1.html 上篇帖子: php中利用memcache/memecached构造简单消息队列 下篇帖子: memcache和nosql的关系
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表