duanjiao5261
duanjiao5261
2013-02-15 23:05

memcached igbinary支持

Below is my phpinfo() output for memcached

memcached

memcached support   enabled
Version 2.1.0
libmemcached version    1.0.4
Session support yes
igbinary support    no
json support    no

I'm using an AWS Linux AMI which is redhat based I believe and uses YUM.

How can I get igbinary support enabled?

Does this have to happen at memcached installation time? I have memcached already working so is there a way I can add this support in now?

thank you

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • dtz8044 dtz8044 8年前

    I used to compile the memcached stack manually, which included igbinary. This was before I started using the remi repo, which provides updated packages without all the overhead of manual compilation.

    Here are the notes I used when I used to compile igbinary manually:

    Had to scp the source from another computer due to lack of direct links, the next steps assume pecl/memcached files are local and extracted
    $ -> wget http://pecl.php.net/get/igbinary-1.1.1.tgz
    $ -> tar -xzvf igbinary-1.1.1.tgz
    $ -> cd igbinary-1.1.1
    $ -> phpize
    $ -> ./configure # No need for extra config params
    $ -> make
    $ -> make install # This should copy the resulting .so file to the php dir where all modules are stored
    $ -> /etc/init.d/httpd restart # I remember having to do this for phpinfo to reflect the setting correctly after the udpate
    

    Now, if you view your phpinfo (or php -i from cli) igbinary support should be set to yes.

    -- Update --

    Be sure you have the following line in php.ini or igbinary.ini where php can read it:

    ; Enable igbinary extension module
    extension=igbinary.so
    

    -- Update #2 --

    Forgot to mention, you need to compile memcached with the following flag in order for it to use igbinary:

    --enable-memcached-igbinary
    

    -- Update #3 --

    In case anyone stumbles across this in the future. Manually maintaining the PHP stack along with commonly used extensions is a pain, and usually not worth the extra effort. You are better off using your distro's package manager to handle all the heavy lifting, an example of installing php with memcached with igbinary support would look like:

    yum install php php-cli php-pecl-memcached php-pecl-igbinary
    

    If your distro's upstream version of php is older and you wish to use a newer version, take a look at the REMI repo: http://blog.famillecollet.com/pages/Config-en

    点赞 评论 复制链接分享