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 [email protected]
… -
嘗試 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