我已经使用pecl install redis
安装了php5 pecl扩展程序,并将extension=redis.so
添加到/etc/php5/fpm/conf.d/21-redis.ini
和/etc/php5/cli/conf.d/21-redis.ini
。然后我重新启动了php5-fpm
和nginx
。
现在php -m | grep redis
向我显示redis已安装正常用于cli,但phpinfo
(使用nginx)显示没有redis且位于Additional .ini files parsed
列表下:
/etc/php5/fpm/conf.d/00-ioncube.ini, /etc/php5/fpm/conf.d/05-opcache.ini, /etc/php5/fpm/conf.d/10-mysqlnd.ini,/etc/php5/fpm/conf.d/10-pdo.ini, /etc/php5/fpm/conf.d/20-curl.ini,/etc/php5/fpm/conf.d/20-json.ini, /etc/php5/fpm/conf.d/20-mysql.ini,/etc/php5/fpm/conf.d/20-mysqli.ini, /etc/php5/fpm/conf.d/20-pdo_mysql.ini, /etc/php5/fpm/conf.d/20-readline.ini
但同样的dir包含21-redis.ini,由于某种原因被忽略:
# ls -1 /etc/php5/fpm/conf.d/
00-ioncube.ini
05-opcache.ini
10-mysqlnd.ini
10-pdo.ini
20-curl.ini
20-json.ini
20-mysql.ini
20-mysqli.ini
20-pdo_mysql.ini
20-readline.ini
21-redis.ini
该文件的内容符合预期:
# cat /etc/php5/fpm/conf.d/21-redis.ini
extension=redis.so
它具有世界可读性。
/var/log/php5-fpm.log
没有错误,/var/log/syslog
也没有。
为什么php-fpm
没有加载redis扩展名?
答案 0 :(得分:5)
这是因为php5-fpm
主程序死了,但工人却没有。 service php5-fpm restart
没有更新它们。
我手动杀死剩余的工作人员并再次重启php-fpm。现在一切正常。