dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
阅读:1965回复:1

[php] memcached 扩展模块 - php-memcached

楼主#
更多 发布于:2015-06-11 11:33
吐槽
服务端: memcached server
http://memcached.org/
https://github.com/memcached/memcached
last stable(2017-02-06) http://www.memcached.org/files/memcached-1.4.34.tar.gz

客户端: php 扩展
memcache: memcached extension
                    https://pecl.php.net/package/memcache
                    last stable(2017-02-06) https://pecl.php.net/get/memcache-2.2.7.tgz
memcached: PHP extension for interfacing with memcached via libmemcached library
                     https://pecl.php.net/package/memcached
                     last stable(2017-02-06):https://pecl.php.net/get/memcached-2.2.0.tgz
                     https://github.com/php-memcached-dev/php-memcached

按照字面意义,根本无法分辨混乱的关系,(⊙﹏⊙)b pecl 上提供两种 memcached扩展如下图.

图片:pecl-memcached.png



目标
为php 安装 memcached 扩展模块,截图中的第2个;
注意,以下方法试用于 php 5.6.x 以下版本,php 7.x 无效,参考2楼;

条件
需要提前安装libmemcached 软件

步骤
#来自部分脚本
#注意,修改 php扩展目录,本例:"/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226"

#!/bin/bash
#install nginx mysql php
#20120718 by http://ywwd.net
#last update 20150526
#v0.4
    
#variables
dir=/usr/local
ext_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"
    
    
#libmemcached
if [ ! -e "$dir/libmemcached" ];then
#  
    tar zxf libmemcached-1.0.18.tar.gz
    cd libmemcached-1.0.18
    ./configure --prefix=/usr/local/libmemcached
    make && make install
#
    if [ ! -e "$dir/libmemcached" ];then
        echo -e "\033[31merror! can't install libmemcached! \033[0m"
        exit 1
    fi
else
    echo -e "\033[31mlibmemcached is already exists! \033[0m"
fi
    
    
#php_memcached
if [ ! -e "$ext_dir/memcached.so" ];then
    tar zxf memcached-2.2.0.tgz
    cd memcached-2.2.0
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config --enable-memcached --with-libmemcached-dir=/usr/local/libmemcached
    make && make install
#
    sed -i 's#; extension_dir = "./"#extension_dir = /usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/#' /etc/php.ini
    ! grep -i 'memcached.so' /etc/php.ini && sed -i '/no-debug-non-zts-20131226/ a\extension=memcached.so' /etc/php.ini
#
    /etc/init.d/php-fpm restart
    rm -rf phpredis-develop/ && sleep 1
    
    if [ ! -e "$ext_dir/memcached.so" ];then
        echo -e "\033[31merror! can't install memcached.so! \033[0m"
        exit 1
    fi
else
    echo -e "\033[31mmemcached.so is already exists! \033[0m"
fi

重启
/etc/init.d/php-fpm restart

验证
php -m | grep memcached
memcached

扩展
libmemcached 是一个 memcached 的库,客户端库,C 和 C++ 语言实现的客户端库,具有低内存占用率、线程安全、并提供对memcached功能的全面支持。
它还采用多种命令行工具: memcat , memflush , memrm , memstat ,并memslap (负载代)。
程序库一直在设计,让不同的散列方法对密钥,分割的钥匙,并使用统一的散列分配。

#END
dongnan
总版主
总版主
  • 粉丝52
  • 发帖数2165
  • 铜币13236枚
  • 威望5838点
  • 银元150个
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 原创写手
沙发#
发布于:2017-02-07 10:51
php7 安装 php-memcached 扩展
目标
php7 安装 php-memcached 扩展

环境
centos 7.3 amd64
php 7.1.1

脚本代码(部分)
#php-extensions-dir
ext_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303"

#libmemcached for php-memcached
if [ ! -e "$dir/libmemcached" ];then
#    
    tar zxf libmemcached-1.0.18.tar.gz
    cd libmemcached-1.0.18/
    ./configure --prefix=/usr/local/libmemcached
    make && make install
    cd ..
    rm -rf libmemcached-1.0.18/
    sleep 2
#
    if [ ! -e "$dir/libmemcached" ];then
        echo -e "\033[31merror! can't install libmemcached! \033[0m"
        exit 1
    fi
else
    echo -e "\033[31mlibmemcached is already exists! \033[0m"
fi

#php-memcached
if [ ! -e "$ext_dir/memcached.so" ];then
    # 如果没有网络,请提前下载代码
    # git clone https://github.com/php-memcached-dev/php-memcached.git
    cd php-memcached/ && /usr/local/git/bin/git checkout php7
    /usr/local/php/bin/phpize
  
 ./configure --with-php-config=/usr/local/php/bin/php-config
--enable-memcached --with-libmemcached-dir=/usr/local/libmemcached
    make && make install
    cd ..
    rm -rf memcached-2.2.0/
    sleep 2
#
  
 sed -i 's#; extension_dir = "./"#extension_dir =
/usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/#'
/etc/php.ini
    ! grep -i 'memcached.so' /etc/php.ini && sed -i '/no-debug-non-zts-20160303/ a\extension=memcached.so' /etc/php.ini
#
    /etc/init.d/php-fpm restart
 
    if [ ! -e "$ext_dir/memcached.so" ];then
        echo -e "\033[31merror! can't install memcached.so! \033[0m"
        exit 1
    fi
else
    echo -e "\033[31mmemcached.so is already exists! \033[0m"
fi

验证
php -m | grep memcached
memcached

参考: 安装php7的memcached扩展
#
游客

返回顶部