zoukankan      html  css  js  c++  java
  • linux下PHP扩展安装memcache模块

    linux下PHP扩展安装memcache模块 

     
      roid

    安装环境
    RHEL 4
    Php 5.2.6


    所需软件
    libevent-1.4.6-stable.tar.gz (http://monkey.org/~provos/libevent/)
    memcache-2.2.3.tgz (http://pecl.php.net/package/memcache)
    memcached-1.2.6.tar.gz (http://www.danga.com/memcached/)


    安装配置

    1. 安装libevent
    # tar zxf libevent-1.4.6-stable.tar.gz
    # cd libevent-1.4.6-stable
    # ./configure –prefix=/usr/local/servers/libevent
    # make && make install

    2. 安装memcached
    # tar zxvf memcached-1.2.6.tar.gz
    # cd memcached-1.2.6
    # ./configure –prefix=/usr/local/servers/memcached –with-libevent=/usr/local/servers/libevent
    # make && make install

    3. 运行memcached
    # /usr/local/servers/memcached -d -m 128 -l localhost -p 11211 -u root

    -d 以守护程序(daemon)方式运行 memcached;
    -m 设置 memcached 可以使用的内存大小,单位为 M;
    -l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
    -p 设置监听的端口,默认为 11211,所以也可以不设置此参数;
    -u 指定用户;

    如果遇到运行memcached时遇到问题,错误提示如下:

    /usr/local/servers/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory

    则运行 LD_DUBUG=libs 就可以知道memcached启动时库的加载路径。具体如下:

    # LD_DEBUG=libs /usr/local/servers/memcached/bin/memcached -v
         10929:     find library=libevent-1.4.so.2 [0]; searching
         10929:      search cache=/etc/ld.so.cache
         10929:      search path=/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib          (system search path)
         10929:       trying file=/lib/tls/i686/sse2/libevent-1.4.so.2
         10929:       trying file=/lib/tls/i686/libevent-1.4.so.2
         10929:       trying file=/lib/tls/sse2/libevent-1.4.so.2
         10929:       trying file=/lib/tls/libevent-1.4.so.2
         10929:       trying file=/lib/i686/sse2/libevent-1.4.so.2
         10929:       trying file=/lib/i686/libevent-1.4.so.2
         10929:       trying file=/lib/sse2/libevent-1.4.so.2
         10929:       trying file=/lib/libevent-1.4.so.2
         10929:       trying file=/usr/lib/tls/i686/sse2/libevent-1.4.so.2
         10929:       trying file=/usr/lib/tls/i686/libevent-1.4.so.2
         10929:       trying file=/usr/lib/tls/sse2/libevent-1.4.so.2
         10929:       trying file=/usr/lib/tls/libevent-1.4.so.2
         10929:       trying file=/usr/lib/i686/sse2/libevent-1.4.so.2
         10929:       trying file=/usr/lib/i686/libevent-1.4.so.2
         10929:       trying file=/usr/lib/sse2/libevent-1.4.so.2
         10929:       trying file=/usr/lib/libevent-1.4.so.2
         10929:

    然后给libevent-1.4.so.2建立一个链接后再运行memcached:
    # ln -s /usr/local/servers/libevent/lib/libevent-1.4.so.2 /lib/libevent-1.4.so.2

    4. 安装php的memcache扩展

    可以使用php自带的pecl安装程序
    # /usr/local/servers/php5/bin/pecl install memcache

    也可以从源码安装
    # tar zxf memcache-2.2.3.tgz
    # cd memcache-2.2.3
    # /usr/local/servers/php5/bin/phpize
    # ./configure –enable-memcache=/usr/local/servers/memcached –with-php-config=/usr/local/servers/php5/bin/php-config –with-apxs2=/usr/sbin/apxs
    # make && make inst

    安装完后会有类似这样的提示:
    Installing shared extensions: /usr/local/servers/php5/lib/php/extensions/no-debug-non-zts-20060922/

    把这个记住,然后修改php.ini,把

    extension_dir = "./"
    修改为
    extension_dir = "/usr/local/servers/php5/lib/php/extensions/"

    并添加一行
    extension="no-debug-non-zts-20060922/memcache.so"

    5. 用phpinfo查看


    测试模块

    <?php

    $memcache = new Memcache;
    $memcache->connect('localhost', 12000) or die ("Could not connect");

    $version = $memcache->getVersion();
    echo "Server's version: ".$version."<br/>n";

    $tmp_object = new stdClass;
    $tmp_object->str_attr = 'test';
    $tmp_object->int_attr = 123;

    $memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
    echo "Store data in the cache (data will expire in 10 seconds)<br/>n";

    $get_result = $memcache->get('key');
    echo "Data from the cache:<br/>n";

    var_dump($get_result);

    ?>

    显示结果:

    Server's version: 1.2.6
    Store data in the cache (data will expire in 10 seconds)
    Data from the cache:

    object(stdClass)[3]  public 'str_attr' => string 'test'

  • 相关阅读:
    while语句
    闭包
    文件操作
    Python基础九:高级特性
    Python基础八:函数
    Python基础六:字典和集合
    Python基础七:条件判断和循环结构
    Python基础五:列表和元组
    Python基础四:字符串及编码
    Python基础三:数据类型和变量
  • 原文地址:https://www.cnblogs.com/L-H-R-X-hehe/p/3974885.html
Copyright © 2011-2022 走看看