php安装扩展redis淌过的坑

Posted FollowYou_博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php安装扩展redis淌过的坑相关的知识,希望对你有一定的参考价值。

php安装扩展redis淌过的坑

欢迎使用 小书匠(xiaoshujiang)编辑器,您可以通过设置里的修改模板来改变新建文章的内容。

cd /usr/local/src/
wget https://github.com/nicolasff/phpredis/archive/2.2.4.tar.gz
tar zxvf phpredis-2.2.4.tar.gz
cd  2.2.4.tar.gz
/usr/local/bin/phpize
 ./configure --with-php-config=/usr/bin/php-config
make
make install

安装成功返回所装扩展路径 "/usr/local/lib/php/extensions/no-debug-non-zts-20131226/"

php.ini修改:

extension_dir = "/usr/local/lib/php/extensions/no-debug-non-zts-20131226/"
extension=redis.so

服务重启:

/usr/local/nginx/sbin/nginx -s reload
/usr/local/sbin/php-fpm restart

然后我又报了新错:

NOTICE: PHP message: PHP Warning:  PHP Startup: redis: Unable to initialize module
Module compiled with module API=20090626
PHP    compiled with module API=20131226

网上查了番,貌似执行编译源码包执行phpize的版本与当前php环境中phpize的版本不一致造成的,执行了 phpize update,重新安装了一遍。

此时我web运行打印的phpinfo()信息没有找到redis扩展,但是我在liunx下 ‘php -m’看到确实已经安装了,查阅了很多资料,原来是web与cli的php.ini可能不同。

补充知识点:

  • cli:是命令行模式时加载的.ini配置

  • fpm:是通过fastcig server和web server交互时加载的.ini配置
    -问题二:

  • cli: php -r "phpinfo();"

  • fpm: 访问phpinfo()的脚本

$ find / -name php.ini
/etc/php.ini
/usr/local/lib/php.ini

看到两条记录,为了保持一致,将cli的配置覆盖web的配置:

cp /usr/local/lib/php.ini /etc/php.ini

以上是关于php安装扩展redis淌过的坑的主要内容,如果未能解决你的问题,请参考以下文章

redis集群部署及踩过的坑

linux 下在安装redis 踩过的坑

redismac下redis扩展安装与遇到的坑汇

安装php的redis及其拓展

php5.5.32编译安装imagick-2.3.0php扩展插件遇到的坑

笔记Composer依赖管理 – PHP的春天,带上一些踩过的坑