無論是從 PECL 安裝 php5-memcached 還是從 apt-get 命令安裝,安裝上的 memcached 模組都是不帶有 igbinary 序列化組件支援的,由於 igbinary 有很大的效能優勢,所以盡量使用 igbinary 作為 memcached 的序列化組件。
環境說明
作業系統:Ubuntu Server 14.04 64-bit
PHP:PHP 5.5.9
構建過程
首先,安裝 PHP 開發版
yuanyu@usvr:~$ sudo apt-get install php5-dev
然後安裝依賴庫
yuanyu@usvr:~$ sudo apt-get install libevent-dev
yuanyu@usvr:~$ sudo apt-get install pkg-config
接下來,安裝 igbinary 模組
yuanyu@usvr:~$ sudo pecl install igbinary
從源碼構建 libmemcached
擷取 libmemcached 的源碼,這裡使用的是 1.0.18 版本
yuanyu@usvr:~$ cd tmp
yuanyu@usvr:~/tmp$ wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
解壓縮,配置,並且進行構建
yuanyu@usvr:~/tmp$ tar xzvf libmemcached-1.0.18.tar.gz
yuanyu@usvr:~/tmp$ cd libmemcached-1.0.18
yuanyu@usvr:~/tmp/libmemcached-1.0.18$ ./configure
yuanyu@usvr:~/tmp/libmemcached-1.0.18$ make
yuanyu@usvr:~/tmp/libmemcached-1.0.18$ sudo make install
從源碼構建 php5-memcached
使用 pecl 擷取 php5-memcached 的源碼,然後配置的時候啟用 --enable-memcached-igbinary。
yuanyu@usvr:~/tmp$ pecl download memcached-2.2.0
yuanyu@usvr:~/tmp$ tar xzvf memcached-2.2.0.tgz
yuanyu@usvr:~/tmp$ cd memcached-2.2.0
yuanyu@usvr:~/tmp/memcached-2.2.0$ phpize
yuanyu@usvr:~/tmp/memcached-2.2.0$ ./configure --enable-memcached-igbinary --disable-memcached-sasl
yuanyu@usvr:~/tmp/memcached-2.2.0$ make
yuanyu@usvr:~/tmp/memcached-2.2.0$ sudo make install
配置 PHP,加入新構建的兩個模組
上面的構建步驟完成之後,就會在 PHP 擴充模組產生 2 個 so 檔案:igbinary.so 和 memcached.so,將這個兩個檔案配置到你的運行環境中即可。