如何使用MAMP从命令行运行PHP脚本?

47

我已经安装了MAMP。现在我正在尝试从命令行运行一个脚本,但似乎无法使其工作。

我应该如何设置环境,以便我可以从命令行运行脚本并使用与MAMP安装的PHP版本?

更新: 我同意下面jjeaton的说法,这里有一个不错的解决方案是创建一个到MAMP PHP的别名:

# add this to your ~/.bash_profile
alias phpmamp='/Applications/MAMP/bin/php/php5.3.6/bin/php'

现在你可以从命令行中使用它:

$ phpmamp --help

2
这个答案提供了更好的解决方案,不会干扰您的默认 PHP 安装。 - jjeaton
1
不要忘记输入:source ~/.bash_profile 重新加载你的 bash 配置文件! - rebe100x
5个回答

40
请注意,MAMP 2.0.5版本的路径已更改。现在它是以下路径之一:
/Applications/MAMP/bin/php/php5.2.17/bin/
/Applications/MAMP/bin/php/php5.3.6/bin/

因此,添加MAMP的php命令的命令可能应该像这样:

export PATH=/Applications/MAMP/bin/php/php5.2.17/bin/:$PATH
或者这样(取决于您想使用哪个版本的PHP):
export PATH=/Applications/MAMP/bin/php/php5.3.6/bin/:$PATH

11
另一种可行的方法,对于PHP版本而言可能更为简洁的做法是,在你的bash配置文件中创建一个别名,让它指向你运行composer或其他命令行工具时想要运行的特定PHP二进制文件。这样有利于避免在OSX上已安装的PHP版本中出现一些潜在的库和php.ini配置不兼容问题。

例如,如果你想在MAMP中指向php 5.4.1,那么你可以在你所选择的编辑器(nano、vi等)中编辑你的.bash_profile文件:
# nano ~/.bash_profile
将以下内容添加到您的PATH语句下方:

Add this below your PATH statement:

alias php=/Applications/MAMP/bin/php/php5.4.10/bin/php

保存并退出(在nano中为CTRL+X,在vi中为:wq)。退出终端。下次尝试从cli调用php时,您将使用与MAMP安装的5.4.10版本。

请记得在更新MAMP的PHP到更高版本时更新此路径。


这需要重启计算机才能生效吗? - Mr. Concolato
对我来说,这是最好的选择,因为我可以为需要在cli上使用不同php版本的不同项目创建不同的别名,例如php7.2、php7.1等。 - Pierre-Verthume Larivière
Concolato先生,您不需要重新启动服务器,而是需要打开一个新的终端或使用source /.bash_profile重新读取.bash_profile文件。请注意,对于我来说,我的.bash_profile没有起作用,因为它在开头有一个source ~/.profile,而文件/.profile不存在(我没有放那里..)。在使用#注释掉此行后,我能够成功运行source ~/.bash_profile而没有错误。 - Pierre-Verthume Larivière

10

在您的终端中运行以下命令:

export PATH=/Applications/MAMP/bin/php5/bin/:$PATH

应该能解决问题。就像Tom Haigh所提到的那样,它会将MAMP PHP可执行文件添加到路径中,这样你就可以使用"php"而不是完整路径。


1
php -i | grep php.ini - 如果正常工作,这应该会给出MAMP php ini的位置,而不是 /etc。 - Tom Haigh
1
Andrew,你可以使用“which php”命令获取php可执行文件的路径,该命令将用于执行php。 - phidah
在MAMP 1.9.4中,需要导出export PATH=/Applications/MAMP/bin/php5.3/bin:$PATH - 因为/Applications/MAMP/bin/php5/bin/不再存在。这指向PHP 5.3,但可能有一种方法可以指向MAMP设置的任何版本。 - Alex King
@Alex King,这取决于您使用的PHP版本。 - amateur barista
嗨@phidah,只有您的解决方案在我使用Mountain Lion 10.8.5和MAMP 2.2时有效。但是,它似乎既没有列在/.profile中,也没有列在/.bash_profile中。我想知道这是添加到哪里了。即使它工作得很好。 - Jaguar

2

是的,我认为它在这里:/Applications/MAMP/bin/php5/bin/php

你可以将/Applications/MAMP/bin/php5/bin/添加到你的路径前面,或者在/usr/bin创建一个符号链接(默认PHP安装可能已经有一个了)。


所以,PHP CLI 是否内置于 /Applications/MAMP/bin/php5/bin/php 中呢?因为我在 /Applications/MAMP/bin/php5/bin 中没有看到关于 PHP CLI 的任何信息。 - Andrew
我认为我的电脑上应该有PHP二进制文件,但也许不是的。它只会被称为“php”。稍后我会在我的Mac上查看。 - Tom Haigh

0

只需更改此命令中的 PHP 版本:

/Applications/MAMP/bin/php/php7.4.21/bin/php  index.php

目前你的回答不够清晰,请[编辑]以添加更多细节,帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接