Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
服务器与CLI上不同版本的PHP_Php_Macos_Apache_Command Line Interface - Fatal编程技术网

服务器与CLI上不同版本的PHP

服务器与CLI上不同版本的PHP,php,macos,apache,command-line-interface,Php,Macos,Apache,Command Line Interface,我运行的是Mac,不幸的是,在CLI和Apache上运行的PHP版本不同。我以前搜索过并可以找到此问题的实例,但无法找到发生此问题的原因或如何解决此问题 当我运行phpinfo()时;并将其加载到浏览器中,我得到以下结果: 版本5.6.24 加载的配置文件:/etc/php.ini 服务器路径:/usr/bin:/bin:/usr/sbin:/sbin 但是,当我在命令行中运行php-v&php--ini时,会得到以下结果: 版本5.6.0 加载的配置文件:/usr/local/lib/php.

我运行的是Mac,不幸的是,在CLI和Apache上运行的PHP版本不同。我以前搜索过并可以找到此问题的实例,但无法找到发生此问题的原因或如何解决此问题

当我运行phpinfo()时;并将其加载到浏览器中,我得到以下结果:

版本5.6.24

加载的配置文件:/etc/php.ini

服务器路径:/usr/bin:/bin:/usr/sbin:/sbin

但是,当我在命令行中运行php-v&php--ini时,会得到以下结果:

版本5.6.0

加载的配置文件:/usr/local/lib/php.ini

当我运行'where is php'时,它显示/usr/bin/php,当我运行'which php'时,我得到/usr/local/bin/php


有人能解释为什么会发生这种情况吗?有人知道如何解决这个问题吗?如果可能的话,我想解决根本问题,而不是找到解决办法。我还想卸载未使用的PHP版本。

您的路径设置为错误/旧版本。执行导出路径=/usr/local/php5/bin:$PATH

重新启动终端并
php-v


或者看一下看一下:,并关注@bing答案上的@mark reed评论。

我的电脑也有同样的问题

当我在终端上检查php版本时

Nanhes-MacBook-Pro:~ nanhekumar$ php -v
echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile
PHP 7.1.16(cli)(构建时间:2018年4月1日14:10:37)(NTS) 版权所有(c)1997-2018 PHP集团 Zend Engine v3.1.0版权所有(c)1998-2018 Zend Technologies

PHP版本7.1.25

解决方案

在我的示例中,您可以通过brew列表查看已安装的phpphp@7.1

Nanhes-MacBook-Pro:~ nanhekumar$ brew link php@7.1


If you need to have this software first in your PATH instead consider running:
  echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
  echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile
然后在终端上运行这个

Nanhes-MacBook-Pro:~ nanhekumar$ php -v
echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile
重新启动终端,再次检查您的php版本。两个php版本相同

sudo brew services stop php

这为我解决了问题

您想要哪个版本,来自Apache还是来自CLI?最终我并不介意,只要它是一致的,但由于Apache是更高的版本,我认为这是我应该使用的版本。您是如何安装Apache的?自制,内置MAMP等?Apache只是随Mac一起安装的版本(最近升级到Sierra,但我已经有一段时间遇到这个问题了)。不久前我手动安装了PHP(./configure-make-install),我认为我安装的PHP不正确,因此它影响了CLI而不是Apache。我认为PHP5.6.24可能是macOS Sierra预装的版本,这意味着CLI实际上是错误的?谢谢你的回答。添加导出路径=感觉更像是一种解决方法,而不是修复方法。当前在哪里设置CLI默认为错误的PHP版本?这可以通过任何其他方法解决,还是可以卸载错误版本的PHP?搜索,SO和Google为您找到很多东西。您可以卸载错误的php版本,但要回答您的问题:CLI默认为错误的php版本的当前设置在哪里?它没有设置为默认值,但设置为使用该确切版本。而这正是我们设定的路径。因此,要解决这个问题,请改变你所需要的路径。