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