之前被接受的答案提到了php 5.3.6,然而当前版本的MAMP以7.2.1作为默认版本(截至2018年初),这说明那不是一个可持续的解决方案。你可以通过在.bash_profile
或者.zshrc
中添加一行额外的代码,将最新版本的PHP路径指定到/Applications/MAMP/bin/php/
并将其导入到你的path中,让你的路径自动更新。以下是我的做法:
PHP_VERSION=`command ls /Applications/MAMP/bin/php/ | sort -n | tail -1`
export PATH=/Applications/MAMP/bin/php/${PHP_VERSION}/bin:$PATH
(在更改后,请使用source ~/.bash_profile
以确保更改生效。)
正如其他人所提到的,您还可能希望修改您的shell,以使用MAMP的mysql可执行文件,该文件位于/Applications/MAMP/Library/bin
中。但是,我不建议导出那个文件夹,因为那里有许多其他的可执行文件,例如libtool
,您可能不想优先考虑这些文件而不是系统安装的版本。这个问题最近阻止了我安装一个node包(libxmljs),如这里所记录。
我的解决方案是定义和导出mysql
和mysqladmin
作为函数:
# Export MAMP MySQL executables as functions
# Makes them usable from within shell scripts (unlike an alias)
mysql() {
/Applications/MAMP/Library/bin/mysql "$@"
}
mysqladmin() {
/Applications/MAMP/Library/bin/mysqladmin "$@"
}
export -f mysql
export -f mysqladmin
我使用函数而不是别名,因为别名不能被传递给子进程,或者至少在shell脚本的上下文中不会。唯一的缺点是运行which mysql
和which mysqladmin
将不再返回任何内容,这有点让人失望。如果您想检查正在使用哪个mysql并确保一切正常,请改用mysql --version
。
注意:@julianromera指出,zsh不支持导出函数,在这种情况下,最好使用别名,例如alias mysql='/Applications/MAMP/Library/bin/mysql'
。只需注意,您的别名可能无法从子shell(例如执行shell脚本时)中使用。