编译安装 PHP 的 Memcached 扩展

安装 libmemcached 类库

  • 注意:安装 PHP 的 Memcached 扩展前,务必先安装 Memcached服务
  • 下载 libmemcached 源码包
cd /usr/local/src
wget https://launchpad.net/libmemcached/1.0/1.0.18/+download/libmemcached-1.0.18.tar.gz
  • 解压缩
tar zxvf libmemcached-1.0.18.tar.gz
  • 编译三部曲
# 进入源码目录
cd libmemcached-1.0.18

# 配置指定安装目录 
./configure --prefix=/usr/local/libmemcached-1.0.18 --with-memcached

# 配置安装 && 编译安装
make
make install
  • 如果出现报错 clients/memflush.cc: In function ‘int main(int, char**)’
# 将 clients/memflush.cc 的 42 行和 51 行作如下修改:
int main(int argc, char *argv[]) 
{
     
  options_parse(argc, argv);
 
-  if (opt_servers == false)
+  if (!opt_servers)
   {
     
     char *temp;
 
-    if (opt_servers == false)
+    if (!opt_servers)
     {
     
       std::cerr << "No Servers provided" << std::endl;
       exit(EXIT_FAILURE);

安装 Memcached 扩展

  • 下载 Memcached 源码包(php >= 7.0 下载 Memcached 3.0,php < 7.0 下载 Memcached 2.2.0)
cd /usr/local/src
wget http://pecl.php.net/get/memcached-3.1.3.tgz
  • 解压缩
tar zxvf memcached-3.1.3.tgz
  • 准备编译
# 进入源码目录
cd memcached-3.1.3

# 通过 phpize 建立 PHP 的外挂模块
/usr/local/php/bin/phpize

# 配置
./configure --with-php-config=/usr/local/php/bin/php-config \
-with-libmemcached-dir=/usr/local/libmemcached-1.0.18/  \
--disable-memcached-sasl

# 编译安装
make
make install

配置 php.ini

# 编辑 php.ini
vim /usr/local/php/etc/php.ini

#在文件尾部增加
[memcached]
extension = memcached.so

# 重启 nginx 和 php
systemctl restart nginx
/etc/init.d/php-fpm restart

# 或
kill -9 $(pidof php-fpm)
/usr/local/php/sbin/php-fpm
/usr/local/nginx/sbin/nginx -s reload

# 验证
/usr/local/php/bin/php -m | grep memcached

搞定!

附:编译安装 PHP Memcache 扩展

cd /usr/local/src
# 下载
git clone https://github.com/websupport-sk/pecl-memcache memcache
cd memcache
# 编译安装
phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
# 配置
echo "[memcache]" >> /usr/local/php/etc/php.ini
echo "extension = memcache.so" >> /usr/local/php/etc/php.ini
# 重启
systemctl restart nginx
/etc/init.d/php-fpm restart

你可能感兴趣的:(Linux,缓存技术,服务器配置,PHP,Memcached,Linux)