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

时间:2010-11-23 23:15:07

标签: php mamp ln

我想使用MAMP的PHP版本而不是Mac上安装的默认版本。我尝试使用

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

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

10 个答案:

答案 0 :(得分:101)

我在原来的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

<强> PS:

为了在El-Capitan上工作

  • 将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
  • 重新启动RecoveryMode并重新启用安全性:csrutil enable

答案 1 :(得分:78)

我不建议尝试修改在命令行上调用的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

答案 2 :(得分:63)

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

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

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

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

编辑文件后,请不要忘记source ~/.bash_profile

答案 3 :(得分:2)

我对目前在网上找到的结果/解决方案并不满意,因为php.ini配置在所有情况下和所有系统上都没有正确加载,特别是在你需要像ioncube和其他模块这样的模块(它在MAMP Pro上更加令人困惑)。这就是我创建自己的php版别名(带配置)的原因,所以我提出了以下解决方案,例如(基于MAMP Pro,请记得调整php.ini)满足您需求的途径):

修改.bash_profile

document.write

并添加以下条目:

vim ~/.bash_profile

在当前终端会话中重新初始化.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'"

如果您安装了一些额外的模块,那么您可以使用php56 -v进行测试,您应该获得ioncube等模块的输出。否则用php56 -i |测试它grep&#34; yourModuleNameOrSomethingElse&#34;

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

对于普通的MAMP用户,配置应位于/ Applications / MAMP / conf /我认为。快乐的节目。

答案 4 :(得分:1)

如果您的终端使用 zsh (oh-my-zosh),如附件所示。 check image 执行以下操作。

Mac Big Sur 使用 "zsh" Oh-my-zosh 作为终端。所以,我做了以下。

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

如果您需要帮助,请告诉我。

答案 5 :(得分:1)

2021 - 对于使用 ohmyzsh 的用户,要编辑的文件是:

/Users/your_user/.zshrc

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

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

与 Big Sur 完美配合

答案 6 :(得分:0)

嗯,&#39;文件存在&#39;错误可能是因为您尝试使用已存在的文件名创建sym-link。我假设你在包含你试图替换的php版本的目录中,或者这是第二次尝试,你没有先删除现有的sym-link。我同意其他人关于不是&#34;更换/修改&#34; php的默认版本。

根据问题的第二部分,绕过必须输入完整路径的最佳方法,建议别名的答案就是正确的。当涉及多个版本时,这意味着必须调用除php之外的其他内容来运行您想要运行的版本。

我有一个脚本可以让我选择&#34;我想要使​​用的php版本,然后创建一个sym链接到该版本,让我只需输入&#39; php&#39;当我想使用它时作为我的命令。我写了一篇关于它的博客here,你可以在那里获得脚本。基于@ioCron给出的答案,我可能需要重新访问我的脚本以考虑与每个版本关联的不同配置文件夹。

答案 7 :(得分:0)

这一切对我来说都不适用于OSX10.12.5

我在/ opt / local / bin

安装了mac端口php70

哪个php显示:

$ tesseract output.jpg out -psm 7

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

/usr/bin/php

到文件/ etc / paths

然后这一切都有了魅力!

答案 8 :(得分:0)

最新版本的MAMP(版本5+)提供了一种使MAMP PHP版本可用于命令行的简便方法。只需在侧栏菜单中选择“ PHP”,然后选中“在命令行上使该版本可用”即可。十分简单! :)

screenshot

答案 9 :(得分:0)

对于 Mac OS Catalina。查找目录 /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