1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法

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

时间:2020-01-18 19:24:35

相关推荐

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

一、编译环境的准备

yum install gcc

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

yum install zlib-devel

二、源码包准备

wget /~provos/libevent-1.4.14b-stable.tar.gz

wget /files/memcached-1.4.15.tar.gz

三、安装与配置

1、安装libevent

tar zxvf libevent-1.4.14b-stable.tar.gzcd libevent-1.4.14b-stable./configure --prefix=/usr/local/libevent/make && make installln -s /usr/local/libevent/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2

2、安装Memcached

tar zxvf memcached-1.4.15.tar.gzcd memcached-1.4.15./configure --prefix=/usr/local/memcached/ --with-libevent=/usr/local/libevent/make && make install

3、启动Memcached

/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脚本。

# # 以下内容摘自互联网vi /etc/rc.d/init.d/memcached#!/bin/sh## memcached: MemCached Daemon# chkconfig: - 90 25# description: MemCached Daemon# Source function library.. /etc/rc.d/init.d/functions. /etc/sysconfig/network#[ ${NETWORKING} = "no" ] && exit 0#[ -r /etc/sysconfig/dund ] || exit 0#. /etc/sysconfig/dund#[ -z "$DUNDARGS" ] && exit 0start(){echo -n $"Starting memcached: "daemon $MEMCACHED -u daemon -d -m 64 -l 127.0.0.100 -p 11211 -c 128 -P /tmp/memcached.pidecho}stop(){echo -n $"Shutting down memcached: "killproc memcachedecho}MEMCACHED="/usr/local/memcached/bin/memcached"[ -f $MEMCACHED ] || exit 1# See how we were called.case "$1" instart)start;;stop)stop;;restart)stopsleep 3start;;*)echo $"Usage: $0 {start|stop|restart}"exit 1esacexit 0

5、添加Memcached开机启动

cd /etc/rc.d/init.d/chmod 777 memcachedchkconfig --add memcachedchkconfig --level 235 memcached onchkconfig --list | grep memcached

6、Memcached使用

service memcached startservice memcached stopservice memcached restart

四、PHP安装Memcache扩展(memcache与memcached扩展二选一即可,建议安装下面的memcached)

[root~] wget -c /get/memcache-3.0.8.tgz[root~] tar -zxvf memcache-3.0.8.tgz[root~] cd memcache-3.0.8[root~] /usr/local/php/bin/phpize[root~] ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcache --with-zlib-dir[root~] make && make install/usr/local/php/lib/php/extensions/no-debug-non-zts-1212/memcache.so[root~] vim /usr/local/php/etc/php.iniextension = /usr/local/php/lib/php/extensions/no-debug-non-zts-1212/memcache.sosession.save_handler = memcachesession.save_path = "tcp://127.0.0.100:11211"[root~] service php-fpm reload

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

因为php5.5+版本内置了memcache扩展 所以无需下载第三方插件直接 执行如下操作即可cd /usr/local/php/bin./pecl install memcache安装时会提示是否开启session支持,根据需要输入no 或者 yes,安装后路径如下:/usr/local/php/lib/php/extensions/no-debug-non-zts-1212/memcache.so需要手动配置到php.ini中,增加如下内容,即表示启用memcache扩展:extension=memcache.so

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

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

wget /libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gztar -zxvf libmemcached-1.0.16.tar.gzcd libmemcached-1.0.16./configure --prefix=/usr/local/libmemcached --with-memcachedmake && make installwget /get/memcached-2.2.0.tgztar zxvf memcached-2.2.0.tgzcd memcached-2.2.0/usr/local/php/bin/phpize./configure --with-php-config=/usr/local/php/bin/php-configmake && make installvi /usr/local/php/etc/php.ini加上extension=memcached.so重启一下php服务就可以了。

如果安装时报错误:checking for libmemcached location... configure: error: memcached support requires libmemcached. Use --with-libmemcached-dir=<DIR> to specify the prefixwhere libmemcached headers and library are located请使用如下方法:php的扩展memcached的安装二tar zxvf memcached-2.2.0.tgzcd memcached-2.2.0/usr/local/php/bin/phpize./configure --with-memcached --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached --enable-memcachedmake && make installvi /usr/local/php/etc/php.ini加上extension=memcached.so重启php就可以了(摘取天上星)

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

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

session.save_handler = memcachesession.save_path = "tcp://127.0.0.100:11211"

2、利用目录下的 .htaccess 文件

php_value session.save_handler "memcache"php_value session.save_path "tcp://127.0.0.1:11211"

3、项目中修改配置

ini_set("session.save_handler", "memcache");使用多个 memcached server 时用逗号","隔开,并且和 Memcache::addServer() 文档中说明的一样,可以带额外的参数"persistent"、"weight"、"timeout"、"retry_interval" 等等,类似这样的:"tcp://host1:port1?persistent=1&weight=2,tcp://host2:port2" ini_set("session.save_path", "tcp://127.0.0.100:11211");

上面只是一些简单的说明,一般来说做分布式是有服务器权限的,所以推荐第一种

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

如果安装的PECL是memcached(使用libmemcache库的那个),则配置应为ini_set("session.save_handler", "memcached"); // 记住是memcached不是memcacheini_set("session.save_path", "127.0.0.1:11211"); // 不要tcp:

启动 memcached参数说明:memcached -d -l 127.0.0.1 -p 11212 -m 128或 启动Memcache的服务器端:memcached -d -m 100 -u root -l 192.168.36.200 -p 11211 -c 256 -P /tmp/memcached.pid # /usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid引用-d选项是启动一个守护进程,-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,-u是运行Memcache的用户,我这里是root,-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.36.200,-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,我们这里统一使用11211-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定。-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid,

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。