使用Composer时如何使用MAMP的PHP版本

10

我正尝试通过 Composer 安装一个需要 PHP 5.6.0 的软件包。我的 MAC 上运行的是 PHP 5.5.31,但 MAMP 运行的是 PHP 7.0。由于该软件包要求的 PHP 版本不符合我的 macOS 版本,因此无法下载。我该如何解决这个问题?


2
当您在终端中运行php -v命令时,显示的是哪个版本的php?如果显示的是osx版本而不是mamp版本,我建议您将mamp版本设置为默认的php版本。请参考这里https://dev59.com/om855IYBdhLWcg3wlFWP。 - Peter
当我执行 php -v 命令时,返回的版本是 5.5.31。 - Packy
尽管启用“为所选PHP版本激活命令行快捷方式”会在运行which php时显示MAMP PHP,但Composer却选择了Mac默认的PHP。我不得不明确地将export PATH(下面的答案)添加到Composer中以获取MAMP的。 - vijaycs85
4个回答

29

MAMP的PHP位置在这里:

/Applications/MAMP/bin/php/php7x.x/bin/

默认的OSX PHP位于

/usr/bin/php

/usr/bin是默认的PATH变量。

如果您想让OSX使用MAMP版本,需要将/Applications/MAMP/bin/php/php7.x.x/bin/添加到您的PATH变量中。

只需在终端中编辑~/.bash_profile并键入

  

vim ~/.bash_profile

如果找不到~/.bash_profile,则必须创建一个

  

touch ~/.bash_profile

然后将以下行添加到文件末尾:

  

export PATH=/Applications/MAMP/bin/php/php7.x.x/bin/:$PATH

只需查看MAMP的正确版本,并将上面示例中的x.x替换为该正确数字即可。 (例如7.0.2)

如果一切正常,请重新启动terminal.app并再次执行php -v。现在您应该看到新版本。

之后尝试再次安装composer包! 祝好运

帮助来源:how-to-override-the-path-of-php-to-use-the-mamp-path


2

对我来说很容易:

首先备份系统的php,命令为:sudo mv /usr/bin/php /usr/bin/~php

然后通过该命令将符号链接从/Applications/MAMP/bin/php/phpX.x.x/bin/php创建到/usr/bin/php:sudo ln -s /Applications/MAMP/bin/php/phpX.x.x/bin/php /usr/bin/php。现在你可以随处使用mamp php(包括其配置)了。


注意:将备份文件夹放入~php文件夹中,macOS将不允许。因此,请使用以下链接:https://dev59.com/llwY5IYBdhLWcg3waXEF - Zohaib Yunis

1
如果您在终端中输入“which php”,它将向您显示它正在查找PHP的位置。我猜测有两个不同版本的PHP安装在不同的目录中。如果是这种情况,您可以使用bash脚本来设置所需PHP版本的正确路径?我在我的Mac上遇到过类似的问题,例如安装了git软件,但它在其他地方查找它(例如与Xcode捆绑的版本)。

0
要暂时添加它,打开终端并输入以下命令:
export PATH=/Applications/MAMP/bin/php/php7.0.0/bin/:$PATH

使用这个,你现在可以使用PHP 7.0.0来执行命令了。请注意,一旦你关闭终端,这些更改将会重置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接