编译安装Memcached 和 Memcache 的PHP扩展

作者:袖梨 2022-06-24

一:安装Memcache

1:编译安装libevent

wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
tar -zxvf libevent-2.0.21-stable.tar.gz
cd libevent-2.0.21-stable
./configure --prefix=/usr/local/libevent
make
make isntall

2:编译安装memcached

wget http://www.memcached.org/files/memcached-1.4.19.tar.gz
tar -zxvf memcached-1.4.19.tar.gz
cd memcached-1.4.19
./configure -with-libevent=/usr/local/libevent/ -prefix=/usr/local/memcached
make
make install

3:启动memcached:

/usr/local/memcached/bin/memcached -d -m 64 -u root -p 11211

下面是memcached命令相关参数详情:
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,这里是10MB,
-u是运行Memcache的用户,这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,这里指定了服务器的IP地址192.168.0.200,
-p是设置Memcache监听的端口,这里设置了12000,最好是1024以上的端口,
-c选项是最大运行的并发连接数,默认是1024,这里设置了256,按照服务器的负载量来设定,
-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid,也可以启动多个守护进程,不过端口不能重复。

ps aux |grep memcached
clipboard

vim /etc/rc.d/rc.local 加入/usr/local/memcached/bin/memcached -d -m 64 -u root -p 11211 #加入开机启动项
telnet 127.0.0.1 11211 #检测memcache
如果出现-bash: telnet: command not found (说明未安装telnet)
直接yum install telnet

telnet set进行测试
set 对应的参数
key key 用于查找缓存值
flags 可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息
expiration time 在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)
bytes 在缓存中存储的字节点
value 存储的值(始终位于第二行)
clipboard1

二: 安装memcache的php扩展

wget http://pecl.php.net/get/memcache-3.0.8.tgz
tar -zxvf memcache-3.0.8.tgz
cd memcache-3.0.8
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so # 查看是否生成扩展so文件
-rwxr-xr-x 1 root root 422219 May 9 10:29 /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so #文件存在


vim /usr/local/php/etc/php.ini #加入扩展
extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"
extension = "memcache.so"

重启php:


自己用的是nginx

kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` #平滑重启php

/usr/local/php/bin/php -m #查看php是否加入了memcache扩展(或者执行phpinfo函数查看是否存在memcache扩展)
已存在memcach扩展,大功告成!

相关文章

精彩推荐