当前位置: 代码迷 >> 综合 >> 【PHP】php -m 与 phpinfo() 显示结果不一致解决方案
  详细解决方案

【PHP】php -m 与 phpinfo() 显示结果不一致解决方案

热度:41   发布时间:2024-01-10 07:53:01.0
    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 进行查看。

    感谢阅读,本文旨在提供参考,如有错误,欢迎大家指正。帮助编者不断的改进!

  相关解决方案