PHP memcached 擴展 → 依賴 libmemcached 庫 → 依賴 Memcached 服務端
三者版本必須兼容,否則會出現 500 錯誤或功能缺失。
關鍵提示:避開 1.0.17 版本(已知 Bug),推薦 1.0.16。
wget -c https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz tar -zxvf libmemcached-1.0.16.tar.gz cd libmemcached-1.0.16 ./configure --prefix=/usr/local/libmemcached --with-memcached sudo make && sudo make install
wget -c https://pecl.php.net/get/memcached-2.2.0b1.tgz
tar -zxvf memcached-2.2.0b1.tgz
cd memcached-2.2.0b1
# phpize 由 PHP 安裝目錄提供
sudo /usr/local/php/bin/phpize
./configure --enable-memcached \
--with-php-config=/usr/local/php/bin/php-config \
--with-libmemcached-dir=/usr/local/libmemcached \
--disable-memcached-sasl
sudo make && sudo make install
在 php.ini 中添加:
extension=memcached.so
重啟 PHP-FPM 与 Nginx:
sudo /etc/init.d/php-fpm restart sudo /etc/init.d/nginx restart
php -m | grep memcached # 或瀏覽 phpinfo() 頁面,搜索 "memcached" 區塊
成功標誌:顯示 memcached support => enabled、版本號、libmemcached 版本、Session 支持等信息。
// ❌ 錯誤:phpinfo 顯示 memcached 卻用 Memcache 類
$mem = new Memcache(); // 會報 500 錯誤
// ✅ 正確:對應 memcached 擴展
$mem = new Memcached();
$mem->addServer('127.0.0.1', 11211);
$mem->set('key', 'value', 60);
echo $mem->get('key');
Memcached,提供面向對象 API