這個問題出現服務器有多個 PHP 版本,php -v
和phpinfo()
顯示兩個不同的版本
最近真的,都給朋友解決問題了。。。
phpinfo
查看的 php 版本是 7.2.6,到 bash 去使用php -v
查看的確是 5.4.2
直接上手先改環境變量,全局永久生效的那種~
vi /etc/profile
在最后加入對應的 PHP 路徑
export PATH=$PATH:/usr/local/php/bin
保存,然后讓配置生效
source /etc/profile
使用php -v
查看還是 5.4.2 的版本,環境變量還是指向舊的,沒生效
這樣,先查一下對應的 php.ini,使用命令,查到有 3 個 php.ini
$ find / -name php.ini
/usr/local/php/etc/php.ini
/usr/local/php7.0/etc/php.ini
/etc/php.ini
然后使用命令查看 PHP 加載的是哪個配置文件,這個獲取的是系統內的 php.ini 的位置,不是 Apache 或者 Nginx 加載的 php.ini 文件
$ php -i | grep php.ini
Configuration File (php.ini) Path => /etc
Loaded Configuration File => /etc/php.ini
查找一下系統里的 PHP 相關目錄
$ find / -name php
可以看到有一個/usr/bin/php
這個應該是服務器默認安裝的 PHP
ok,使用命令刪掉/usr/bin/php
文件夾
rm -rf /usr/bin/php
別濫用,別敲錯,回車
再讓配置生效一下
source /etc/profile
這樣,在 Bash 里查看的 PHP 版本也就是使用phpinfo()
查看的版本了
php運行版本位置