zoukankan      html  css  js  c++  java
  • 编译php-memcached扩展

    扩展安装的步骤大概分为4步
      1.下载并解压扩展包,进入扩展包目录
      2./usr/local/php/bin/phpize 生成configure
        由于php的版本一直在改变,那些扩展无法知道用户使用的php版本,所以无法预先生成configure文件
        这时候可以让php来生成,执行这句命令就会根据php当前版本生成一个configure文件
      3../configure --with-php-config=/usr/local/php5314/bin/php-config
      4.make && make install

    1.下载该扩展 wget http://pecl.php.net/get/memcache-2.2.7.tgz
    2.解压并进入解压包
      tar xfv memcache-2.2.7.tgz
      cd memcache-2.2.7
    3./usr/local/php/bin/phpize
      phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下。
    4../configure --with-php-config=/usr/local/php/bin/php-config
      检测安装环境并指定php-config文件
    5.make && make install
      失败,原因为fatal error: ext/standard/php_smart_str.h:
      经过百度查询后发现php7修改了php_smart_str.h为php_smart_string.h
      所以以上步骤行不通,即使 ./configure --with-php-config=/usr/local/php/bin/php-config --disable-memcached-sasl 也不行
    6.重新来
      1.git clone https://github.com/php-memcached-dev/php-memcached
      没有安装git 就 yum install git -y
    2.cd php-memcached
    3./usr/local/php/bin/phpize
    4../configure --with-php-config=/usr/local/php/bin/php-config
      出现错误error: memcached support requires libmemcached,这是缺少libmemcached依赖
      则 yum install libmemcached libmemcached-devel
      重新 ./configure --with-php-config=/usr/local/php/bin/php-config
    5.make && make install
      安装成功,并给出一条路径 /usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/
      该路径是安装后生成memcached.so的位置
    6.配置php.ini
      vim /usr/local/php/etc/php.ini
      增加extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20170718/memcached.so
    7.在nginx的html目录下增加test.php,内容如下
      <?php
      phpinfo();
    8.重启php和nginx,浏览器访问http://192.168.30.129/test.php
      发现并没有出现memcache模块
    9.感觉是php.ini没有被加载,检查发现phpinfo()输出到浏览器的模块中
      Configuration File (php.ini) Path /usr/local/php/etc
      而Loaded Configuration File none
      此时感觉是Loaded Configuration File出了问题
    10.百度后都说Loaded Configuration File会加载lib目录下的php.ini,所以将etc下的php.ini拷贝到lib目录下
    11.重启php,浏览器访问,发现成功加载memcache模块

  • 相关阅读:
    详细讲解 关于Linux静态库和动态库的分析
    linux下的共享库(动态库)和静态库
    原子性
    TCP-心跳
    linux alsa pcm(此pcm非硬件pcm接口)
    linux音频 DAPM之二:audio paths与dapm kcontrol
    linux 音频驱动
    imx6qsbd kpp
    nand flash详解及驱动编写
    嵌入式Qt程序启动参数-qws 不需要X11桌面系统
  • 原文地址:https://www.cnblogs.com/chuwu/p/9732430.html
Copyright © 2011-2022 走看看