本文記錄在 Linux(以 Ubuntu 為例)下編譯安裝 PHP Memcached 擴展的完整流程,包含底層依賴 libmemcached 的安裝、PHP 擴展編譯、服務重啟驗證。
phpize、gcc、make 等編譯工具。/usr/local/php,請根據實際情況調整路徑。wget -c https://launchpad.net/libmemcached/1.0/1.0.16/+download/libmemcached-1.0.16.tar.gz # ⚠️ 切勿下載 1.0.17,有已知 Bug 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
PECL 官網:pecl.php.net/package/memcached
wget -c https://pecl.php.net/get/memcached-2.2.0b1.tgz
tar -zxvf memcached-2.2.0b1.tgz
cd memcached-2.2.0b1
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
關鍵參數說明:
--with-php-config:指定 PHP 安裝路徑下的 php-config。--with-libmemcached-dir:指向步驟 1 安裝的前綴目錄。--disable-memcached-sasl:若無 SASL 需求建議禁用,避免依賴缺失報錯。在 php.ini 中添加:
extension=memcached.so
sudo /etc/init.d/nginx restart sudo /etc/init.d/php-fpm restart # 或 systemctl restart php-fpm
創建 phpinfo.php 訪問,搜索 memcached 區塊,出現版本信息、libmemcached version 等即成功。

configure 報錯找不到 libmemcached:檢查 --with-libmemcached-dir 路徑是否為 make install 後的前綴目錄(含 include、lib 子目錄)。phpize 不存在:安裝 php-dev / php-devel 包。undefined symbol:多為 libmemcached 版本不匹配,建議嚴格使用 1.0.16。