php7安裝memcache 和 memcached 擴展
標簽(空格分隔): php
memcache和memcached區別
memcache:http://pecl.php.net/package/memcache
memcached:http://pecl.php.net/package/memcached
memcached 是高性能的分布式內存緩存服務器,而PHP memcache 和 memcached 都是 Memcached 服務器的 PHP 擴展。其中memcache 比 memcached 早出現,所以一些老的代碼可能還在用 memcache 擴展。memcached 后來出現,並且大部分框架都支持。
memcache 是一個原生版本,完全是在 PHP 框架內開發的,支持 OO(面向對象) 和非 OO 兩套接口並存,而 memcached 是建立在 libmemcached 的基礎上的,只支持 OO 接口。這就意味着在安裝 memcache 擴展的時候不要求安裝其他的東西,但是在安裝 memcached 的時候會要求你安裝 libmemcached。別嫌麻煩!因為 libmemcached 是 memcache 的 C 客戶端,它具有低內存,線程安全等優點。據說新浪微博之前就全面將 PHP 的 memcache 替換成 PHP 的 memcached,在高並發下,穩定性果斷提高。
比較尷尬的一點是 memcached 和 memcache 對應的服務端名字都是 memcached,大家使用 ps aux | grep memcache 就會發現守護進程的名字是 memcached(我的環境是 ubuntu16 LTS),其實后面的 d 可以理解為守護進程,因此網上有的人說 memcache 是客戶端, memcached 是服務端就是這個意思,所以不要將客戶端的 memcached 和服務端的 memcached 混淆了就好。
安裝memcached擴展
1 選擇對應的tar包安裝
https://pecl.php.net/package/memcached
tar -zxvf memcached-3.0.4.tgz
memcached-3.0.4
[phpize 和 php-config 要看自己的位置]
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
2 可能會出現的錯誤

需要安裝依賴 yum -y install libmemcached libmemcached-devel
安裝memcache擴展
1 https://pecl.php.net/package/memcache
這個方式安裝會失敗: 貌似原因也是還不支持在 PHP7 下安裝 memcache 擴展
2 github搜索 並且代碼已經支持到 PHP7
git clone https://github.com/websupport-sk/pecl-memcache memcache
用 phpize 安裝,步驟和 memcached 一樣
cd memcache/
[phpize 和 php-config 要看自己的位置]
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
Installing shared extensions:/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
修改php.ini
vim /usr/local/php/etc/php.ini
在文件最后添加
重啟: service php-pfm restart | service httpd restart
如果報錯:
添加.so的路徑 把 extension_dir ./ 改成 /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
再次重啟
如果還不行 再次安裝 多試幾次!