php5-fpm 完全忽略 redis ini 文件

php5-fpm ignoring redis ini file completely

我安装了 php5 带有 pecl install redis 的 pecl 扩展,将 extension=redis.so 添加到 /etc/php5/fpm/conf.d/21-redis.ini/etc/php5/cli/conf.d/21-redis.ini。然后我重新启动了 php5-fpmnginx.

现在 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

但同一个目录包含 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扩展?

这是因为php5-fpm主进程死了,但工人没有。 service php5-fpm restart 没有更新它们。

我手动杀死了剩下的工人,然后重新启动了 php-fpm。现在一切正常了。