php加载memcached,php memcached 安装

这篇博客介绍了memcached服务端与libmemcached客户端库的区别,以及PHP中php-memcached和php-memcache扩展的差异。推荐使用php-memcached,因为它持续维护且基于通用库。详细步骤指导了在Unix系统上安装libmemcached和php-memcached,包括解决编译时可能遇到的问题。
摘要由CSDN通过智能技术生成

一、了解概念

关于 memcached 和 php ,有好多个名词,因为长得非常相似,时常让人看的一脸懵逼,所以要先搞清楚。

1. memcached

指服务端,就像 mysql server、redis server 那样,你可以手动编译这玩意安装到服务器当做服务端用,也可以直接使用云服务商提供的现成的服务端。

2.libmemcached

一个客户端库,有了服务端,就要有客户端来连接、读写。客户端可以是 php、java、pyton、nodejs 等等语言,各个语言可以按照 memcached 的通信协议去实现,但这有点浪费了,libmemcached 就是一个封装好协议的库,各客户端可以在这个库基础上写 wrapper ,实现各自语言的api。这个库可以单独在 unix 系统中安装,各语言可以共享这个库。

3.php-memcache

php 早期实现的一个 memcached 客户端,自己内部实现了通信协议,不依赖 libmemcached

4.php-memcached

php 使用 libmemcached 实现的客户端 wrapper,封装好后暴露各种 api 给 php 用

二、安装哪个php扩展

可以看出有两个可供选择,php-memcached 或者 php-memcache,来个简单的对比

指标

php-memcache

php-memcached

依赖

libmemcached

功能

略少(够用)

丰富

维护

最后更新(2013年)

持续

支持

unix 和 win(已提供dll)

unix 和 win(未提供dll)

比较推荐 php-memcached,毕竟在持续维护,另外他使用的是通用库,方便与其他语言共享服务端,但比较麻烦的是,未提供 编译好的 win 扩展,win 编译扩展是个头疼的事 ,若没有精力编译,还必须跑在 win 系统,使用 php-memcache 吧

三、安装 php-memcached

1、先装 libmemcached

$ wget http://launchpad.net/libmemcached/1.0/0.44/+download/libmemcached-0.44.tar.gz

$ tar xvzf libmemcached-0.44tar.gz

$ cd libmemcached-0.44

$ ./configure

$ make

$ sudo make install

使用 mac 可以直接 brew 安装

$ brew install libmemcached

2、再装 php-memcached

$ wget http://pecl.php.net/get/memcached-3.1.3.tgz

$ tar zxvf memcached-3.1.3.tgz

$ cd memcached-3.1.3

$ phpize #使用默认php

$ /usr/local/php/bin/phpize # 若有多版本 php 存在,可使用指定路径的 phpize

# 配置编译选项,两个参数非必须,在php和libmemcached不是系统默认安装的情况下才需要

./configure \

--with-php-config=/usr/local/php/bin/php-config \

--with-libmemcached-dir=/usr/local/libmemcached

$ make

$ sudo make install

安装中可能遇到的问题

Cannot find autoconf. Please check your autoconf installation

缺少 autoconf 库

# 源码安装, 这里就不写了, 仍然是 下载->编译->安装 的路子

# mac brew 安装

$ brew install autoconf

2.configure: error: Please reinstall the pkg-config distribution

缺少 pkg-config 库

# 源码安装, 这里就不写了, 仍然是 下载->编译->安装 的路子

# mac brew 安装

$ brew install pkg-config

3、加载扩展

若上一步骤无错误,此时应该在 php 扩展目录生成了 memcached.so

打开 php.ini (可使用 php --ini 查看路径)添加

# 请将路径改为正确的

extension="/usr/local/php/pecl/20170718/memcached.so"

此时,php cli 应该是已经生效了, 可用下面的命令判断

$ php -m|grep memcached

最后,使用 php-fpm 方式的重启 php-fpm, 使用 apache moudle 方式的 重启 apache,让 Http 请求也生效

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值