基於libmemcached,php擴充memcached的安裝
一,為什麼要裝memcached擴充
memcached的1.2.4及以上增加了CAS(Check and Set)協議,對於同一key的多進行程的並發處理問題。這種情況其實根資料庫很像,如果同時有幾個進程對同一個表的同一資料進行更新的話,那會不會打架呢,哈哈。資料庫裡面可以鎖定整張表,也可以鎖定表裡面一 行的功能,其實memcached加入的CAS根這個差不多。
php的擴充memcache,不支援cas,所以我們要裝memcached擴充,memcached擴充是基於libmemcached,所以要先安裝libmemcached
?
二,查看memcahced的版本資訊
telnet 127.0.0.1 12000
stats
你會看到有以下資訊
STAT pid 15322
STAT uptime 1885
STAT time 1279455772
STAT version 1.2.8
STAT pointer_size 32
如果版本過低,考慮重新裝一下
退出telnet ,ctrl + ] 然後在按q就行了。
三,安裝所要軟體
wget http://launchpad.net/libmemcached/1.0/0.42/+download/libmemcached-0.42.tar.gz
wget http://pecl.php.net/get/memcached-1.0.2.tgz
memcached的官方網站 http://www.memcached.org/
四,安裝libmemcached
tar zxvf libmemcached-0.42.tar.gz
cd libmemcached-0.42
./configure –prefix=/usr/local/libmemcached? –with-memcached
make && make install
安裝要注意的問題:
1,? 安裝過程中不要忘了,–with-memcached,不然會提示你
checking for memcached… no
configure: error: “could not find memcached binary”
2,你的memcached是不是1.2.4以上的,如果不是會提示你
clients/ms_thread.o: In function `ms_setup_thread’:
/home/zhangy/libmemcached-0.42/clients/ms_thread.c:225: undefined reference to `__sync_fetch_and_add_4′
clients/ms_thread.o:/home/zhangy/libmemcached-0.42/clients/ms_thread.c:196: more undefined references to `__sync_fetch_and_add_4′ follow
collect2: ld returned 1 exit status
make[2]: *** [clients/memslap] Error 1
make[2]: Leaving directory `/home/zhangy/libmemcached-0.42′
解決辦法是–disable-64bit CFLAGS=”-O3 -march=i686″,如果不用這個64位的long型資料,我想php擴充memcached,memcache也就沒什麼區別了,裝memcached也就沒什麼意思了。
五,php的擴充memcached的安裝
tar zxvf memcached-1.0.2.tar.gz
cd memcached-1.0.2
/usr/local/php/bin/phpize
./configure –enable-memcached –with-php-config=/usr/local/php/bin/php-config –with-libmemcached-dir=/usr/local/libmemcached
./configure –prefix=/usr/local/phpmemcached? –with-memcached
make && make install
vi /usr/local/php/lib/php.ini
加上extension=memcached.so重起一下服務就可以了.
?
轉載:http://blog.51yip.com/php/928.html