20190719 重装 php 7.2 之后,在 Terminal 下 php -v 和 浏览器下 phpinfo()显示的不一样!
1、现象
$ php -v
PHP 7.1.23 (cli) (built: Feb 22 2019 22:19:32) ( NTS )
phpinfo 结果如下
2、 分析:
1. 首先,两者不一样并不是一个错误!是正常的
2. 终端下 php -v 执行的是系统已经安装并且link 的一个程序(或者一个进程)
3. 浏览器下 phpinfo 实际上是 apache 进程中加载的 libphp7.so 模块
4. 要让两者一样,只能配置系统的 php link 版本到 7.2(反过来的话,不就白升级了吗!?)
3、 原因:
仔细阅读 brew install php 的记录,最后是有一个失败记录的,如下
==> Pouring php-7.2.8.high_sierra.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink sbin/php-fpm
/usr/local/sbin is not writable.
You can try again using:
brew link php
==> /usr/local/Cellar/php/7.2.8/bin/pear config-set php_ini /usr/local/etc/php/7
就是 brew link php 失败了!
4 、 尝试解决:
-
$ brew link php
Linking /usr/local/Cellar/php/7.2.8…
Error: Could not symlink sbin/php-fpm
/usr/local/sbin is not writable. -
$ brew link --overwrite php
Linking /usr/local/Cellar/php/7.2.8…
Error: Could not symlink sbin/php-fpm
/usr/local/sbin is not writable. -
sudo rm -fr /usr/local/sbin/php 之后再来,也是一样!
-
$ brew list
apr fontconfig jemalloc libtiff php71
apr-util freetds jpeg libtool php@7.1
… -
尝试 chmod 或 chown 的目标是 /usr/local/sbin
根本不允许操作! -
进 recover模式
https://blog.csdn.net/a547720714/article/details/52678643
我进 recover模式 ,但是哪个模式下根本就没有chmod 或 chown 命令!
作为失败的足迹,这里也贴一下过程和图片,也许以后什么问题用得上!
1.重启电脑
2.command + R 进入recover模式
3.点击最上方菜单使用工具,选择终端
4.运行命令csrutil disable
5.当出现successfully字样,代表关闭成功!
6. 无奈之下试试网上有人建议的方法
这次的目标不是 /usr/local/sbin ,而是他的上一级 /usr/local/
$ sudo chown -R $(whoami):admin /usr/local
$ brew link php
这次竟然就没有报错!
Linking /usr/local/Cellar/php/7.2.8... 147 symlinks created
但是,马上 php -v 还是 7.1 版本
$ reboot
-
重启之后再来!哈哈哈!
$ php -vPHP 7.2.8 (cli) (built: Jul 19 2018 12:15:24) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies with Zend OPcache v7.2.8, Copyright (c) 1999-2018, by Zend Technologies