发布于2026-07-11 阅读(0)
扫一扫,手机访问
php cli命令无法调用正确的php版本

在服务器上敲php -v,版本号看起来是对的——但别急着放心。再试试php -m或者php --ini,显示的配置路径可能完全不是你想的那样。明明正确的 PHP 装在/usr/local/php/bin/php,可which php却指向了/usr/local/bin/php。这俩目录下的 PHP,很可能不是同一个东西。
问题出在哪?多半是 PATH 环境变量在捣乱。执行echo $PATH,看看系统到底先找哪个目录:
[root@ip-***** sbin]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/usr/local/goaccess/bin:/usr/local/php/bin:/root/bin:/usr/local/php/bin:/usr/local/php/bin:/opt/aws/bin
仔细看,正确的路径/usr/local/php/bin其实已经在变量里了,但它排在了/usr/local/bin的后面。系统在查找命令时,会按顺序遍历 PATH 里的每个目录,先出现的位置优先级更高。所以which php找到的是/usr/local/bin里的版本,真正的 PHP 核心却被忽略了。
解决方法并不复杂,把正确的路径挪到最前面就行。直接复制上面的 PATH 内容,调整顺序后用 export 重新写入:
[root@ip-***** sbin]# export PATH=/usr/local/sbin:/usr/local/php/bin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/usr/local/goaccess/bin:/usr/local/php/bin:/root/bin:/usr/local/php/bin:/opt/aws/bin
改完别急着走,先验证一下:
[root@ip-***** sbin]# which php
/usr/local/php/bin/php
路径对了。再跑一遍 php --ini,确认配置也跟上了:
[root@ip-***** ~]# php --ini
Configuration File (php.ini) Path: /usr/local/php/lib
Loaded Configuration File: /usr/local/php/lib/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
搞定。其实就是 PATH 里目录顺序的小问题,但往往能让人折腾半天。记住:优先级看位置,前面的说了算。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8