【 Linux 】为lnmp架构添加memcached支持
一、首先搭建lnmp平台,这里不再演示。通过php页面来进行测试如下:
[root@node1 ~]# vim /usr/local/nginx/html/info.php <?php $link=mysql_connect("localhost","root",""); if(!$link) echo "FAILD!连接错误,用户名密码不对"; else echo "OK!可以连接"; ?> [root@node1 ~]# curl http://localhost/info.php OK!可以连接
二、安装memcached服务端
[root@node1 ~]# yum install memcached -y [root@node1 ~]# service memcached start 正在启动 memcached: [确定] [root@node1 ~]# netstat -ntplu | grep :11211 tcp 0 0 0.0.0.0:11211 0.0.0.0:* LISTEN 1848/memcached udp 0 0 0.0.0.0:11211 0.0.0.0:* 1848/memcached
三、需要对php扩展memcahced模块才能使用memcahced服务端存取数据。
php 有两种模块提供了对memcached服务的支持:
1. memcache 模块
2. memcached 模块
二者的区别:安装memcache扩展的时候,并不要安装其他的库文件等,但在安装memcached的时候会要求安装libmemcached,而libmemcahed具有的优点是低内存,线程安全等特征。
在高并发下memcached比memcache抗压能力要更好。
memcached直接配置了session支持,只要稍微修改下配置文件就可以把session存储在memcache中。
(1) 安装memcached扩展
[root@node1 src]# tar xf libmemcached-1.0.18.tar.gz [root@node1 src]# cd libmemcached-1.0.18 [root@node1 src]# ./configure --prefix=/usr/local/libmemcached --with-memcached [root@node1 src]# make && make install [root@node1 src]# tar xf memcached-2.2.0.tgz [root@node1 src]# cd memcached-2.2.0 [root@node1 memcached-2.2.0]# /usr/local/php/bin/phpize Configuring for: PHP Api Version: 20131106 Zend Module Api No: 20131226 Zend Extension Api No: 220131226 [root@node1 memcached-2.2.0]# ./configure --prefix=/usr/local/php-memcached --with-libmemcached-dir=/usr/local/libmemcached/ --with-php-config=/usr/local/php/bin/php-config --disable-memcached-sasl
# --disable-memcached-sasl 可能是通过yum安装的memcached服务端程序版本太低造成的,检查是需要禁止此项。 [root@node1 memcached-2.2.0]# make && make install [root@node1 ~]# mkdir /usr/local/php/etc/php.d [root@node1 ~]# vim /usr/local/php/etc/php.d/memcached.ini extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/memcached.so [root@node1 ~]# service php-fpm restart
这样就为php添加了访问memcache服务器的扩展模块,使用phpinfo();就可以查看,或者使用php -m
[root@node1 ~]# /usr/local/php/bin/php -m | grep memcached
memcached