php安装扩展redis淌过的坑

php安装扩展redis淌过的坑

php扩展
redis
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
上一篇:Spring JDBC模板类—org.springframework.jdbc.core.JdbcTemplate(转)


下一篇:配置php扩展redis