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中配置全局环境变量