【问题标题】:How to use MAMP's version of PHP instead of the default on OSX如何使用 MAMP 的 PHP 版本而不是 OSX 上的默认版本
【发布时间】:2011-05-14 19:17:18
【问题描述】:

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

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

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

【问题讨论】:

    标签: php mamp ln


    【解决方案1】:

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

    【讨论】:

    • 在以后的版本中,别名 phpmamp='/Applications/MAMP/bin/php/php5.3.20/bin/php' 将 5.3.20 部分替换为您的版本
    • 您还可以为“php”本身创建一个别名,这样就可以满足您的要求,而不会弄乱配置: alias php='/Applications/MAMP/bin/php5.3/bin /php' 这对于像 Composer 这样的自动化工具使用正确版本的 php 是必要的。还要记得重新启动终端或键入“source ~/.bash_profile”以使更改生效。
    • FWIW,最新版本稍微修改了路径。希望这可以帮助某人避免“找到我的道路”炼狱。 :D alias phpmamp='/Applications/MAMP/bin/php/php5.5.3/bin/php'
    • 我之前用过这个方法,但是我切换到下面的方法,因为默认的php安装没有安装某些扩展(例如mcrypt)。这在 Laravel 安装(使用 Composer)和使用 artisan 时是必需的。
    • OP 建议的变体和约翰的建议结合起来怎么样。使用符号链接,但将其称为 phpmamp,并在 /usr/local/bin 而不是应用程序中创建它?这不是更好的方法吗,因为它会在重新启动后持续存在而无需编辑 bash_profile,并且它将更容易跟踪/记住您创建它,因为它存在于 bin 目录中,而不是被隐藏在 bash 配置文件脚本中。
    【解决方案2】:

    我在原始 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 重新启动到恢复模式(在启动时按住 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

    【讨论】:

    • 这对我来说是最好的解决方案。即使我使用 php 别名 CakePHP 控制台会继续使用 /usr/bin/ 中的版本。
    • 不幸的是,这在 El Capitan 中不再适用了......现在最好的解决方案是 bash_profile 一个......
    • 我在 El Capitan 上,这无需额外步骤即可工作。
    • 刚试穿Catalina 10.15.6, mv: rename /usr/bin/php to /usr/bin/php.bak: Operation not permitted
    【解决方案3】:

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

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

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

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

    编辑文件后别忘了source ~/.bash_profile

    【讨论】:

    • 这确实对我有用,也是快速更改 PHP 版本的最简单方法!
    • 这是最安全、最简单的方法,不需要您在每次操作系统更新时重新运行脚本。
    • 最佳答案!我已经使用了几年的符号链接,但只是更改 PATH 变量是最优雅的方式,因为 MacOS 更新不会重置。
    • 这是目前最好的答案,最安全也最简单!!
    • 这是更好的答案。如果您安装了 mamp,您可以切换安装。我跑了which php,它给了我/Applications/MAMP/bin/php/php7.1.8/bin/php。所以我首先检查了 Mamp 的安装目录并找出了有哪些版本。然后我运行vim ~/.bash_profile,将php的导出路径更改为7.0.22。然后我跑了source ~/.bash_profile。就是这样,现在当我在命令行中运行 which php 时,我得到:/Applications/MAMP/bin/php/php7.0.22/bin/php 一切都像魅力一样运行。
    【解决方案4】:

    到目前为止,我对我在网上找到的结果/解决方案并不满意,因为 php.ini 配置并未在所有情况下和所有系统上都正确加载,尤其是当您需要像 ioncube 和其他(在 MAMP Pro 上更令人困惑)。这就是为什么我创建了自己的 php 版本别名(带有配置),所以我想出了以下解决方案,例如(基于 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 测试它,你应该得到 ioncube 等模块的输出。否则用 php56 -i | 测试它grep "yourModuleNameOrSomethingElse"

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

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

    【讨论】:

      【解决方案5】:

      嗯,“文件存在”错误可能是因为您尝试使用已经存在的文件名创建符号链接。我假设您在包含您尝试替换的 php 版本的目录中,或者这是第二次尝试并且您没有首先删除现有的符号链接。我同意其他人关于不“替换/修改”默认版本的 php。

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

      我有一个脚本,可以让我“选择”我想使用的 php 版本,然后创建一个指向该版本的符号链接,让我在想要使用时简单地输入“php”作为我的命令它。我写了一篇关于它的博客here,您可以在其中获取脚本。根据@ioCron 给出的答案,我可能需要重新访问我的脚本以说明与每个版本关联的不同配置文件夹。

      【讨论】:

        【解决方案6】:

        好吧,这一切都不适用于 OSX10.12.5

        我在 /opt/local/bin 安装了 mac ports php70

        哪个php显示:

        /usr/bin/php
        

        我设置了别名和本地路径等,这主要对我有用,但其他程序失败(如作曲家)所以我的解决方案是预先添加:

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

        到文件 /etc/paths

        然后这一切都很有魅力!

        【讨论】:

          【解决方案7】:

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

          screenshot

          【讨论】:

          • MAMP Pro 版本 4 也有这个功能
          • 我已经看到很多引用了这个,但这个选项对我没有任何作用。也许它需要一些其他配置?
          【解决方案8】:

          如果您的终端正在使用 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”。

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

          【讨论】:

            【解决方案9】:

            适用于 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

            【讨论】:

              【解决方案10】:

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

              /Users/your_user/.zshrc
              

              所以,你可以编辑这个文件并添加路径:

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

              与 Big Sur 完美搭配

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-07-25
                • 2021-02-16
                • 2016-08-04
                • 2019-10-05
                • 2020-12-30
                • 1970-01-01
                • 2018-02-22
                相关资源
                最近更新 更多