阅读(8469)

php memcache 扩展 php -m 与 phpinfo() 不同

最后一次修改 2017年08月21日

事情起因,因要升级 openssl(openssl升级这里不表) ,所以在升级后对 php 也进行了从新编译,编译成功。

发现没有安装,memcache 扩展,从新编译安装了一下,显示的安装成功,但是 phpinfo() 不显示 memcache 扩展

查找了,php.ini 文档当中,也有 extension="memcache.so" 很奇怪的问题,

查找 phpinfo() 当中 extension_dir 的目录,也存在 memcache.so,

重启了 php-fpm 也不显示(或者 apache 之类的)

后使用 php -m 可以加载出 memcache,而使用 phpinfo() 没有 memcache

[root@x ~]# php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
ereg
filter
ftp
gd
gettext
hash
iconv
json
libxml
mbstring
mcrypt
memcache

应该是 php-cli 与 php-fpm 调用了不同的,php.ini 的配置文件

[root@x ~]# php -i | grep php.ini
Configuration File (php.ini) Path => /usr/local/php/etc
Loaded Configuration File => /usr/local/php/etc/php.ini

phpinfo.php 这个是新创建了php文件,里面写了 phpinfo()

[root@x ~]# curl http://127.0.0.1/phpinfo.php | grep php.ini

# 可以看到和上面的返回不一样

创建符号连接到 /usr/local/php/lib 下

[root@x ~]# ln -s /usr/local/php/etc/php.ini /usr/local/php/lib/php.ini

PS:以上是后期编辑的,显示的可能不是当时发生的情况,问题排查方法是没问题,另外其它的针对 php memcache 扩展 排查方法。

which php 看一下是不是多php版本引起,php -m 的等问题

php-cli 与 php-fpm 是同一个 php 版本或者 php.ini 吗(本次发生的不同的 php.ini)

php apache nginx memcache 等各种重启看一下