Mac / OSx - 更改在 bash 中调用的 PHP 版本

Posted

技术标签:

【中文标题】Mac / OSx - 更改在 bash 中调用的 PHP 版本【英文标题】:Mac / OSx - Change PHP version which is call in bash 【发布时间】:2012-10-29 04:13:49 【问题描述】:

我对通过 bash 命令“php”调用的 PHP 有疑问:

在 bash 中:

php -v # PHP 5.3.17

/usr/bin/php # PHP 5.3.15

我主要想要辅助 PHP 版本 5.3.15,因为在这个版本中我已经正确安装了扩展等。

我如何将 /usr/bin/php 设置为 main -> 我想在调用“php -v”时返回我的 5.3.15 版本。

执行我糟糕的英语,希望你能理解。

非常感谢。 我有 Mac OSx Lion

【问题讨论】:

这些版本之间的 PHP 功能有什么不同吗? (5.3.15 vs 5.3.17) 虽然这个问题很好。 是的,我安装了 intl 和一些 ICU 库,它们仅适用于我的 5.3.15。 【参考方案1】:

您应该查找路径并检查路径中的所有目录是否有指向错误 php 版本的符号链接。

然后您可以删除该符号链接并将其替换为指向正确版本的链接。

您也可以使用find 查看所有实例:

$ sudo find / -name "php"

【讨论】:

2019 年在 Mac Catalina 上非常有用。 THX【参考方案2】:

我建议你通过“Mac Ports”安装 php。

您安装了多个版本的 php。

使用 cli 命令“which”,您可以:

描述 which 实用程序获取命令名称列表并搜索每个可执行文件的路径 如果实际调用了这些命令,它将运行。

所以请阅读 cli 命令“which”的手册页。

从您的 cli 执行此操作:

哪个php

然后你会看到你的 php 可执行文件在哪里。我建议您将 php 可执行文件替换为指向 /usr/bin/php 的符号链接。

【讨论】:

是的,返回“/opt/local/bin/php”。我认为我的 PC 上的 PHP 乱七八糟,因为我正确使用了 OSX(Lion)中的 PHP,但我需要 php_intl 库,所以我通过 Mac Ports 安装了这个库,并且知道我有两个版本的 PHP并使用 php_intl 并正确设置为 /usr/bin/php 版本。 @frosty22 好的,按照我说的做,删除 /opt/local/bin 中的 php 链接或文件,然后在 /opt/local/bin 中创建一个名为 php 的符号链接,指向 /usr /bin/php 然后这个将是你的官方 php cli 版本,就是这样。 感谢删除文件 /opt/local/bin/php 并创建符号链接 - sudo ln -s /usr/bin/php /opt/local/bin/php 完美运行【参考方案3】:

另一种不更改原始 php 文件/链接的方法是,如果您按如下方式编辑 .bashrc 文件(也适用于其他命令):

    打开终端/命令行并输入:

    vim ~/.bashrc
    
    然后按“i”进入编辑模式(如果在此之前出现问题,因为交换文件,然后按“E”继续编辑文件)

    添加以下行(根据需要更改路径):

    alias php="/Applications/MAMP/bin/php/php5.4.10/bin/php"
    
    按“ESC”并输入“:wq”

    如果您需要 php-alias 直接在当前 shell 会话中工作,那么您必须使用以下命令(这是可选的,因此只有在您继续在当前 shell 中工作时):

    source ~/.bashrc
    

就是这样,不需要更改 /usr/bin 文件夹,如果需要,您可以将您的 bashrc 文件/设置导出到任何其他类似 linux / bsd 的系统,甚至无需触摸您的操作系统 /usr/bin 文件。您还可以为不同的 php 版本添加新的别名,如“php52”、“php53”、“php54”等,用于测试目的或其他目的。

玩得开心, ioCron

【讨论】:

本指南对我有用,它应该包含在一些指南或 wiki 中,在安装 XAMPP 后,我刚刚收到 composer 错误,因为 MacOS 默认 PHP 是 7.1.3,而我的 laravel 项目需要PHP 7.2,谢谢! 这对我有用!谢谢【参考方案4】:

对于 brew 用户,如果您已经有 54 个,则可能不需要 php55 - 但无论如何您都应该运行这些命令

$ brew install php54 php54-xdebug php54-mcrypt

您可以根据需要将 54 替换为最新的数字。最后我检查它是在 56

然后根据上面的一些 cmets 你应该运行:

$ php --version

它可能会显示:

PHP 5.4.24 (cli) (built: Jan 19 2014 21:32:15) 
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies

如果是这样,请像其他评论者一样更改您的 .bash_profile 我的 brew 实例(我认为它的默认值)位于

/usr/local/Cellar
/usr/local/bin

当使用 brew 安装东西时,它们会被放入 Cellar 并通过 bin 链接。但在这种情况下,我们需要覆盖 php

$ sudo nano ~/.bash_profile

我的有点像:

PATH=$PATH:~/bin
PATH=$PATH:/usr/local/bin
PATH=$PATH:/usr/local/sbin
PATH=$PATH:/usr/local/Cellar/r/2.15.1/R.framework/Versions/Current/Resources/li$
export PATH

这意味着它已经可以访问 /usr/local/bin - 但我使用别名来指定 通过在底部附近添加此行:

alias php="/usr/local/bin/php"

保存并关闭终端窗口,打开另一个窗口,它应该显示如下内容:

$ php --version
PHP 5.4.27 (cli) (built: Apr 24 2014 17:16:35) 
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    with Xdebug v2.2.4, Copyright (c) 2002-2014, by Derick Rethans

【讨论】:

【参考方案5】:

操作系统:OSX Yosemite 只需通过vim ~/.bash_profile整理类似的问题

导出 PATH=/usr/local/bin:$PATH 导出 PATH=/Applications/MAMP/bin/php/php5.5.10/bin:$PATH

确保顺序正确。将 export PATH=/usr/local/bin:$PATH 放在 export PATH=/Applications/MAMP/bin/php/php5.5.10/bin:$PATH

之前

/usr/local/bin 包含 mac 默认 php

希望这会有所帮助。

【讨论】:

以上是关于Mac / OSx - 更改在 bash 中调用的 PHP 版本的主要内容,如果未能解决你的问题,请参考以下文章

Mac OSX - 如何在bash_profile中配置全局环境变量

text Mac OSX Bash配置文件

text Mac OSX Bash配置文件

无法在 Mac OsX 上编辑 bash_profile [关闭]

Mac OSX bash命令执行自动 scp

Mac OSX上卸载Anaconda