解决php7安装memcache扩展问题


在最近一段时间,公司的架构从php5.6.22升级到了php7.1.12,但是在期间又开发了一套新的框架,但是这个框架需要使用memcache的扩展,当时找到我叫我帮忙安装一下,我心想不就是一条pecl命令安装就可以吗?这么简单就马上答应了。然后安装时就遇到报错了(主要报错如下):

fatal error: ext/standard/php_smart_str.h: No such file or directory
 #include "ext/standard/php_smart_str.h"
                                                                                ^
compilation terminated.
make: *** [memcache.lo] Error 1
ERROR: `make' failed

然后就去翻查了一下资料,pecl好像不支持安装memcache扩展。这样只能找其他办法解决了,在期间也踩了很多坑,后来找到了一个github上的可支持php7的memcache扩展

接下来就是安装步骤了:

  • 拉去memcache扩展

    cd /usr/local/src/
    git clone https://github.com/websupport-sk/pecl-memcache
    
  • 编译安装memcache扩展

    cd pecl-memcache/
    /usr/local/php/bin/phpize
    ./configure --with-php-config=/usr/local/php/bin/php-config
    make && make install
    
    Installing shared extensions:     /usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/
  • 上面已经安装完成memcache扩展,接下来把它加入php.ini中

    vim  /etc/php.ini
    
    extension_dir = "/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/"
    extension = "memcache.so"
  • 重启php-fpm使配置生效

    /etc/init.d/php-fpm reload