如何使用 MAMP 的 PHP 版本,而不是默认的 OSX

我想使用 MAMP 的 PHP 版本,而不是默认安装在我的 Mac。我试过吸毒

ln -s /Applications/MAMP/bin/php5.3/bin/php php

但我得到一个“文件存在”错误。解决这个问题的最好方法是什么,这样我就可以只输入 php 而不是完整路径?

88596 次浏览

我不建议尝试修改在命令行上调用的 PHP 的默认版本。如果您决定升级操作系统,这样做可能会破坏系统的其他部分,并在将来给您带来问题。

有一个替代方案可以满足你的需要。您可以为 MAMP 的 php 5.3副本创建一个别名。我的化名是 phpmamp。打开终端机,输入:

alias phpmamp='/Applications/MAMP/bin/php5.3/bin/php'

现在,在命令行输入 phpmamp 将启动 MAMP php Interperter:

phpmamp --help

您很可能希望在 ~/.bash_profile中存储这个别名和任何其他别名,这将允许这些别名在重新引导时保持不变。否则,别名应该只对您所在的特定终端会话有效。关于创建 .bash_profile文件的更多信息可以在这里找到:

Http://www.redfinsolutions.com/redfin-blog/creating-bashprofile-your-mac

我已经在原始 php 位置创建了一个符号链接。

1. 找到你的 osx php 版本:

which php

结果应该是:

/opt/local/bin/php

2. 备份(移动)原始的 php 二进制文件:

sudo mv /opt/local/bin/php /opt/local/bin/php.bak

3. 创建符号链接:

sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php

4. 运行新的 php 版本:

php -v

附注:

这样才能在酋长岩行得通

  • 重新启动 Mac 到 RecoveryMode (启动时保持 Cmd + R)
  • 打开终端并输入: csrutil disable
  • 重启
  • 无论是: sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /opt/local/bin/php
    sudo ln -s /Applications/MAMP/bin/php/php5.4.4/bin/php /usr/bin/php
  • 重新启动恢复模式并重新启用安全性: csrutil enable

我不喜欢篡改当前文件,所以我只是将 MAMP PHP bin 文件夹添加到 $PATH env 变量。

您可以编辑 ~/.bash_profile并将以下行添加到顶部

export PATH="/Applications/MAMP/bin/php/php5.6.1/bin:$PATH"

只需将 PHP 版本更改为您正在使用的当前版本即可。

不要忘记在编辑文件后执行 source ~/.bash_profile

到目前为止,我对我在网上找到的结果/解决方案并不满意,因为 php.ini 配置在所有情况下和所有系统上都没有正确加载,特别是当你需要离子立方体等模块时(在 MAMP Pro 上更加令人困惑)。这就是为什么我创建了我自己的 php 版本别名(使用 configs) ,所以我想出了以下解决方案,例如(基于 MAMP Pro,记得根据需要调整 php.ini 路径) :

编辑.bash _ profile

vim ~/.bash_profile

并添加以下条目:

alias php55="/Applications/MAMP/bin/php/php5.5.26/bin/php -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.5.26.ini'"
alias php56="/Applications/MAMP/bin/php/php5.6.10/bin/php -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini'"
alias php56cgi="/Applications/MAMP/bin/php/php5.6.10/bin/php-cgi -c '/Library/Application Support/appsolute/MAMP PRO/conf/php5.6.10.ini'"

在当前终端会话中重新初始化. bash _ profile (否则不会看到任何更改,除非重新启动终端) :

source ~/.bash_profile

如果安装了一些额外的模块,那么可以使用 php56-v 对其进行测试,并且应该会得到一个离子立方体等模块的输出。否则使用 php56-i | grep“ yourModuleNameOrsomething Else”测试它

现在,您可以轻松地在终端中使用其中一个 php 版本,比如“ php56”,并加载所有配置。因此,它非常适合在所有版本的迭代中测试和构建应用程序,包括通过终端进行正确的 php.ini 配置。

对于普通的 MAMP 用户,配置应该位于/Applications/MAMP/conf/我认为。编程愉快。

那么,“ file vis”错误可能是因为您试图创建一个具有已经存在的文件名的 sym-link。我假设您在包含您试图替换的 php 版本的目录中,或者这是第二次尝试,并且您没有首先删除现有的 sym-link。我同意其他人关于不“替换/修改”php 的默认版本的观点。

基于问题的第二部分,避免输入完整路径的最好方法,建议使用别名的答案正好与此相符。但是,当涉及到多个版本时,这意味着必须调用 php 以外的东西来运行您想要运行的版本。

我有一个脚本,它允许我“选择”我想使用的 php 版本,然后创建一个到该版本的 sym-link,当我想使用它时,它允许我简单地输入‘ php’作为我的命令。我写了一个关于它的博客 给你,在那里你可以得到脚本。基于@ioCron 给出的答案,我可能需要重新访问我的脚本,以说明与每个版本相关联的不同配置文件夹。

在 OSX10.12.5中,这些都不起作用

我在/opt/local/bin 安装了 mac 端口 php70

Php 显示:

/usr/bin/php

我设置了别名和本地路径等,这些大多对我有用,但是其他程序都失败了(比如作曲家) ,所以对我来说解决方案就是假设:

/opt/local/bin
/opt/local/sbin

到文件/etc/路径

然后这一切都起作用了!

最新版本的 MAMP (版本5 +)提供了一种简单的方法,使命令行可以使用 MAMP PHP 版本。只需在边栏菜单中选择“ PHP”,然后选择“在命令行上提供此版本”。小菜一碟!:)

截图

如果您的终端正在使用 zsh (oh-my-zosh) ,如附件所示。 检查图像 执行以下操作。

Mac Big Sur 在终端中使用“ zsh”Oh-my-zosh。

  1. 开放式终端。
  2. 检查配置文件路径中是否有. zhrc 文件(/Users/yourProfileName)
  3. 如果您没有. zhrc 文件,那么使用(~ touch. zhrc)命令创建一个。
  4. 加上以下几行: Export MAMP _ PHP =/Applications/MAMP/bin/php/php7.4.12/bin Export PATH = “ $MAMP _ PHP: $PATH”
  5. 保存文件。关闭终端并重新打开它。现在运行“ which php”。

如果你需要帮助就告诉我。

查找目录 /Users/<user_name>/.zprofile

并添加(例如)

# MAMP PRO PHP
export PATH="/Applications/MAMP/bin/php/php7.4.2/bin:$PATH"

重启后,在终端中

which php

新的 php 版本 /Applications/MAMP/bin/php/php7.4.2/bin/php

2021年的今天,对于那些使用 天啊的用户,需要编辑的文件是:

/Users/your_user/.zshrc

因此,您可以编辑此文件并添加路径:

export PATH=/Applications/MAMP/bin/php/php8.0.0/bin:$PATH

和大索尔合作无间