zoukankan      html  css  js  c++  java
  • Linux 下配置 phpredis 的过程和遇到的问题

    其实对于 Linux 系统和 LNMP 环境并不是很熟,如果有错误请指正。

    一、关于 PHP

    PHP 的编译参考了此文:http://blog.aboutc.net/linux/65/compile-and-install-php-on-linux

    编译完成后通过 phpinfo() 查看发现没有加载到 php.ini 文件(Loaded Configuration File 配置项为 None),需要手动设置,否则后面无法加载 redis 扩展

    设置方法为

    php-fpm -c /usr/local/php-5.6.21/etc/

    (参考:http://blog.csdn.net/haitun312366/article/details/38639129

    二、安装 phpredis

    1. 从 git 下载压缩包然后解压到 /usr/local/phpredis

    2. 按照官方的说明进行编译

    cd /usr/local/phpredis
    phpize
    ./configure [--enable-redis-igbinary]
    make && make install

    结束以后,会自动把 redis.so 放到 PHP 的 extension_dir。

    3. 配置 PHP,编辑 php.ini,增加:

    extension=redis.so

    保存后,重启 php-fpm:

    service php-fpm restart

    结束后,通过 phpinfo() 查看是否加载了 redis 扩展。

    三、遇到的问题

    如果重启 php-fpm 的时候提示:

    ERROR: unable to bind listening socket for address '127.0.0.1:9000': Address already in use (98)

    可以先结束进程再启动:

    killall php-fpm
    service php-fpm start

    最头疼的问题到了,无法正常加载 redis 扩展:

    PHP Warning: PHP Startup: redis: Unable to initialize module
    Module compiled with module API=********
    PHP compiled with module API=********

    Google 了很多都说是执行编译源码包执行 phpize 的版本与当前 php 环境中 phpize 的版本不一致造成的,事实上也的确是这个原因,因为系统之前安装过其他版本的 PHP。

    解决的最直接的方法是,配置 phpredis 的时候指定 phpize 和 php-config 的绝对路径:https://segmentfault.com/a/1190000003830937

    将上面第二步的部分修改为:

    cd /usr/local/phpredis
    /usr/local/php-5.6.21/bin/phpize
    ./configure --with-php-config=/usr/local/bin/php-config
    make && make install

    重启 php-fpm,查看 phpinfo(),done!

  • 相关阅读:
    存储过程、触发器、数据完整性
    结构化查询语句
    HDU 1205 鸽巢原理
    ZOJ 2386 容斥原理
    poj 2356 抽屉原理
    HDU 2048 错排
    数据库原理及应用——关系数据库
    数据库原理及应用——绪论
    UVA
    汇编试验十一:编写子程序
  • 原文地址:https://www.cnblogs.com/roving/p/5508188.html
Copyright © 2011-2022 走看看