Mac 将 PHP 升级到 5.6,但是 CLI php -v 得到 5.3.28?
Posted
技术标签:
【中文标题】Mac 将 PHP 升级到 5.6,但是 CLI php -v 得到 5.3.28?【英文标题】:Mac upgraded PHP to 5.6, but CLI php -v get 5.3.28? 【发布时间】:2014-11-02 01:54:07 【问题描述】:我已经在我的机器上安装了 MAMP(随 php 5.5 提供)。并且 localhost 指向 /Applications/MAMP/htdocs。当我尝试在终端中使用 composer 在 htdocs 中安装依赖项时,就会出现问题。 Composer 抱怨 PHP 必须是 5.4 或以上。
我猜它抱怨 PHP 是 OSX 自带的。所以我通过
将PHP升级到5.6curl -s http://php-osx.liip.ch/install.sh | bash -s 5.6
但是当我这样做时
$ php -v
我还是得到了
PHP 5.3.28 (cli) (built: Aug 29 2014 18:52:17)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
Composer 还在抱怨……
这是为什么呢?以及如何解决这个问题?
【问题讨论】:
php 5.3 在你的 $path 中可能早于 5.6。要么删除 5.3,要么将 5.6 移动到 5.3 之前路径中的某个位置 在终端中执行which php
以查看使用了哪个二进制文件。执行echo $PATH
以查看在您键入命令时搜索二进制目录的顺序。安装程序可能在 /Users/myusername/.profile 文件的 PATH 变量中附加了 php 安装目录。
谢谢 Marc 和 jkj,我能够在答案中找到如下解决方案。
不管怎样,如果你升级到 Mavericks,你将在 /usr/bin 中获得 5.4.24。
我正在使用 Mavericks,但不知何故安装了 Apache2,这导致了冲突。所以通过删除Apache2,它解决了这个问题。
【参考方案1】:
如果您已使用 curl 进行升级,请复制并粘贴以下代码行并按 Enter。
$ export PATH=/usr/local/php5/bin:$PATH
现在,输入
$ php -v
如果操作正确,它应该显示以下内容
PHP 5.6.23 (cli) (built: Jun 26 2016 13:17:47)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
with Xdebug v2.2.5, Copyright (c) 2002-2014, by Derick Rethans
【讨论】:
经过数小时的搜索,这对我有用,谢谢!【参考方案2】:如果您使用Homebrew 安装了 PHP 5.6,则可以:
打开终端,运行open -a TextEdit ~/.bash_profile
,然后将其粘贴到文件末尾:
# Use Home-brewed PHP 5.6 instead of pre-installed version (5.3)
export PATH="$(brew --prefix homebrew/php/php56)/bin:$PATH"
保存文件并重启终端。
【讨论】:
这切了芥末。谢谢! export PATH="$(brew --prefix php@5.6)/bin:$PATH"【参考方案3】:感谢您的帮助。
这是由于$PATH中的顺序,就像上面cmets中发布的Marc和jkj。
我找不到重新排序 $PATH 的方法(进行了一些研究,但未能找到简单的方法),但我可以通过简单地删除之前在这篇文章之后安装的 Apahce2 来解决这个问题:
https://apple.stackexchange.com/questions/41143/how-to-revert-default-mac-apache-install-to-original
2014 年 9 月 9 日更新: 经过一番研究,以下过程将使PHP版本设置系统范围广泛。
程序来自这个source,请在该页面下方查找cmets并找到用户Amtriorix。
我只是在这里复制/粘贴他的解决方案:
The php-cli version is still the Apple version if You do not change it. Your php on apache can be different as the cli version, including used modules ! So beware. As Brian Wynn did mention, of course You can modify Your PATH settings to write into your ~/.profile file the following export PATH=/usr/local/php5/bin:$PATH Most likely a better approach is to make the setting system wide. You should symlink to the right php executable. So: #cd /usr/bin #mv php php.org #ln -s /usr/local/php5/bin/php test if it works: #php -v && php -m && php --ini --> should be php-osx version with related modules...
【讨论】:
您可以在 ~/.bash_profile 文件中将 $PATH 设置为您想要的任何内容...您可以这样做:echo "PATH='$PATH'" >>~/.bash_profile
,然后编辑该文件并将 PATH 更改为您想要的。下次您启动新终端时,这将是您的 PATH。
mv:将 php 重命名为 php.org:不允许操作【参考方案4】:
-
查看终端历史记录以了解新版本的安装位置(可能是 /usr/local)
在终端中输入“which php”以查看当前版本的位置(这应该与新版本不同)
转到用户/用户名/.bash_profile
用新位置替换旧位置,或在原始位置之后添加另一个位置,用冒号分隔(如果替换,可能会破坏其他内容,具体取决于位置)。
重启终端,运行 php -v 测试。
export PATH="/usr/local/mysql/bin:/usr/local/bin:/usr/local:$PATH"
【讨论】:
以上是关于Mac 将 PHP 升级到 5.6,但是 CLI php -v 得到 5.3.28?的主要内容,如果未能解决你的问题,请参考以下文章
mac 升级10.12 php debug 环境 跑不起的解决 解决方案