php -m 与 phpinfo()显示的不一致分两种情况:
1、php -m 有显示,phpinfo()无显示;
2、php -m 无显示,phpinfo()有显示;
一、php -m 有显示,phpinfo()无显示
1、查看 下php的版本
是否一致,如果不一致,会导致php -m与phpinfo()所看到的扩展会不一致,这就是所谓的多版本php,结果如下图:
[root@7con ~] php -i |grep php.ini # 查看php当前所读取php.ini的路径
[root@7con ~] php -v # 查看php版本
[root@7con ~] vim info.php # 创建phpinfo()页面
<?php
phpinfo();
?>
# 访问 info.php ,http://localhost/info.php
2、未在php.ini中添加 .so
文件,需要注意的是,如果编译安装的扩展,在 php的.so根目录下
没有,那么在php.ini添加 .so
的时候,就需要指定其 绝对路径
。如:
[root@7con ~] vim /etc/php.ini
# 如果需要添加mysql扩展,那么就需要在文件下添加
extension=mysql.so
#保存退出,之后重启下php-fpm服务
[root@7con ~] systemctl restart php-fpm.service
3、环境变量的原因
,如果是编译安装的,需要指定:
[root@7con ~] vim /etc/profile
# 文件末端添加
export PATH="/apps/lib/php5/bin:$PATH"
# 保存退出,使其立即生效
[root@7con ~] source /etc/profile
二、php -m 无显示,phpinfo()有显示
php -m 无显示,phpinfo()有显示,其实这种问题,编者也是第一次遇到,刚开始一直纠结 php.ini
配置文件 以及 php
版本的问题,但实际上,有的环境是有 php.cli
文件的。之所以 php -m 无显示,phpinfo()有显示,就是因为web的跟cli版本的配置文件是不一致的。
如果能在phpinfo()有显示,是因为你在php.ini
文件下添加了 .so
文件,并重启了php服务。
但是,php -m 无显示,就是因为只在php.ini
文件添加了.so
文件,而没有在php.cli
文件进行.so
文件的添加。
所以解决方案如下:
找到 php.cli
文件,进行 .so
文件的添加即可。
[root@7con ~] vim /etc/php.cli
# 这里也以mysql为例
[mysql]
extension=mysql.so
# 保存退出,之后重启下php-fpm服务
[root@7con ~] systemctl restart php-fpm.service
更多的php详细参数可以使用 php -i | less
进行查看。
感谢阅读,本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!