linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法

一、编译环境的准备

  yum install gcc
  yum install gcc-c++ libstdc++-devel
  yum install zlib-devel

二、源码包准备

wget http://monkey.org/~provos/libevent-1.4.14b-stable.tar.gz
wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz

三、安装与配置

1、安装libevent

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. tar zxvf libevent-1.4.14b-stable.tar.gz  
  2. cd libevent-1.4.14b-stable  
  3. ./configure --prefix=/usr/local/libevent/  
  4. make && make install  
  5. ln -s /usr/local/libevent/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2  
2、安装Memcached

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. tar zxvf memcached-1.4.15.tar.gz  
  2. cd memcached-1.4.15  
  3. ./configure --prefix=/usr/local/memcached/ --with-libevent=/usr/local/libevent/  
  4. make && make install  

3、启动Memcached

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. /usr/local/memcached/bin/memcached -d -m 64 -u root -l 127.0.0.100 -p 11211 -c 128 -P /tmp/memcached.pid  
4、为了方便管理,写个SHELL脚本。
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. # http://blog.phpha.com  
  2. # 以下内容摘自互联网  
  3. vi /etc/rc.d/init.d/memcached  
  4. #!/bin/sh  
  5. #  
  6. # memcached:    MemCached Daemon  
  7. # chkconfig:    - 90 25  
  8. # description:  MemCached Daemon  
  9. # Source function library.  
  10. . /etc/rc.d/init.d/functions  
  11. . /etc/sysconfig/network  
  12. #[ ${NETWORKING} = "no" ] && exit 0  
  13. #[ -r /etc/sysconfig/dund ] || exit 0  
  14. #. /etc/sysconfig/dund  
  15. #[ -z "$DUNDARGS" ] && exit 0  
  16. start()  
  17. {  
  18.         echo -n $"Starting memcached: "  
  19.         daemon $MEMCACHED -u daemon -d -m 64 -l 127.0.0.100 -p 11211 -c 128 -P /tmp/memcached.pid  
  20.         echo  
  21. }  
  22. stop()  
  23. {  
  24.         echo -n $"Shutting down memcached: "  
  25.         killproc memcached  
  26.         echo  
  27. }  
  28. MEMCACHED="/usr/local/memcached/bin/memcached"  
  29. [ -f $MEMCACHED ] || exit 1  
  30. # See how we were called.  
  31. case "$1" in  
  32.         start)  
  33.                 start  
  34.                 ;;  
  35.         stop)  
  36.                 stop  
  37.                 ;;  
  38.         restart)  
  39.                 stop  
  40.                 sleep 3  
  41.                 start  
  42.                 ;;  
  43.         *)  
  44.                 echo $"Usage: $0 {start|stop|restart}"  
  45.                 exit 1  
  46. esac  
  47. exit 0  
5、添加Memcached开机启动

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. cd /etc/rc.d/init.d/  
  2. chmod 777 memcached  
  3. chkconfig --add memcached  
  4. chkconfig --level 235 memcached on  
  5. chkconfig --list | grep memcached  
6、Memcached使用

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. service memcached start  
  2. service memcached stop  
  3. service memcached restart  
四、PHP安装Memcache扩展(memcache与memcached扩展二选一即可,建议安装下面的memcached)
[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. [root~] wget -c http://pecl.php.net/get/memcache-3.0.8.tgz  
  2. [root~] tar -zxvf memcache-3.0.8.tgz  
  3. [root~] cd memcache-3.0.8  
  4. [root~] /usr/local/php/bin/phpize  
  5. [root~] ./configure  --with-php-config=/usr/local/php/bin/php-config --enable-memcache --with-zlib-dir  
  6. [root~] make && make install  
  7. /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/memcache.so  
  8. [root~] vim /usr/local/php/etc/php.ini  
  9. extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/memcache.so  
  10. session.save_handler = memcache  
  11. session.save_path = "tcp://127.0.0.100:11211"  
  12. [root~] service php-fpm reload  

php5.5+版本的memcache扩展安装方法:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 因为php5.5+版本内置了memcache扩展 所以无需下载第三方插件直接 执行如下操作即可  
  2. cd /usr/local/php/bin  
  3. ./pecl install memcache  
  4. 安装时会提示是否开启session支持,根据需要输入no 或者 yes,安装后路径如下:  
  5. /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/memcache.so  
  6. 需要手动配置到php.ini中,增加如下内容,即表示启用memcache扩展:  
  7. extension=memcache.so  

补充:PHP的Memcache扩展的安装后发现一个问题,SESSION会出现丢失,这可能是安装Memcached服务端的时候,防火墙没有添加11211端口,修改防火墙规则后,一切正常。

五、PHP memcached 扩展的安装(注意这里是memcached非memcache)

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. wget https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz  
  2. tar -zxvf libmemcached-1.0.16.tar.gz   
  3. cd libmemcached-1.0.16   
  4. ./configure --prefix=/usr/local/libmemcached --with-memcached  
  5. make && make install   
  6.   
  7. wget http://pecl.php.net/get/memcached-2.2.0.tgz  
  8. tar zxvf memcached-2.2.0.tgz  
  9. cd memcached-2.2.0  
  10. /usr/local/php/bin/phpize  
  11. ./configure  --with-php-config=/usr/local/php/bin/php-config  
  12. make && make install  
  13. vi /usr/local/php/etc/php.ini  
  14. 加上extension=memcached.so重启一下php服务就可以了。  
  15.   
  16. <pre code_snippet_id="360298" snippet_file_name="blog_20140523_9_4485366" name="code" class="plain">如果安装时报错误:  
  17. checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefix  
  18.  where libmemcached headers and library are located  
  19.   
  20. 请使用如下方法:  
  21.   
  22. php的扩展memcached的安装二  
  23.   
  24. tar zxvf memcached-2.2.0.tgz  
  25. cd memcached-2.2.0  
  26. /usr/local/php/bin/phpize  
  27.   
  28. ./configure  --with-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcached  
  29.   
  30. make && make install  
  31.   
  32. vi /usr/local/php/etc/php.ini  
  33.   
  34. 加上extension=memcached.so重启php就可以了(摘取天上星)</pre><br><br>  



六、PHP项目分布式使用Memcache同步SESSION的几种方法

1、直接修改php.ini配置文件

[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. session.save_handler = memcache  
  2. session.save_path = "tcp://127.0.0.100:11211"  
2、利用目录下的 .htaccess 文件
[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. php_value session.save_handler "memcache"  
  2. php_value session.save_path "tcp://127.0.0.1:11211"  
3、项目中修改配置
[cpp]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. ini_set("session.save_handler""memcache");  
  2.   
  3.   
  4. 使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,  
  5. 可以带额外的参数"persistent""weight""timeout""retry_interval" 等等,类似这样的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2"   
  6. ini_set("session.save_path""tcp://127.0.0.100:11211");  
上面只是一些简单的说明,一般来说做分布式是有服务器权限的,所以推荐第一种

Memcached存储session的方法是不加“tcp://“前缀的:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 如果安装的PECL是memcached(使用libmemcache库的那个),则配置应为  
  2. ini_set("session.save_handler", "memcached"); // 记住是memcached不是memcache  
  3. ini_set("session.save_path", "127.0.0.1:11211"); // 不要tcp:  

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. 启动 memcached参数说明:  
  2. memcached -d -l 127.0.0.1 -p 11212 -m 128  
  3. 或 启动Memcache的服务器端:  
  4. memcached -d -m 100 -u root -l 192.168.36.200 -p 11211 -c 256 -P /tmp/memcached.pid   
  5. # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid  
  6. 引用  
  7.     -d选项是启动一个守护进程,  
  8.     -m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,  
  9.     -u是运行Memcache的用户,我这里是root,  
  10.     -l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.36.200,  
  11.     -p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,我们这里统一使用11211  
  12.     -c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定。  
  13.     -P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid,  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值