事实上,之前接受的答案指的是php 5.3.6,而当前版本的MAMP默认为7.2.1(截至2018年初),这一事实表明这不是一个非常可持续的解决方案。您可以通过向路径添加额外的行来自动更新路径,或者从中获取最新版本的 PHP 并将其导出到路径。我是这样做的:.bash_profile
.zshrc
/Applications/MAMP/bin/php/
# Use MAMP version of PHP
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可执行文件,该可执行文件位于.但是,我不建议导出该文件夹,因为那里还有许多其他可执行文件,例如,您可能不希望优先于系统安装的版本。此问题使我最近无法安装节点包 (libxmljs),如此处所述。/Applications/MAMP/Library/bin
libtool
我的解决方案是定义和导出以及作为函数: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脚本的上下文中传递。我发现的唯一缺点是运行并且不会再返回任何东西,这很糟糕。如果你想检查正在使用哪个mysql并确保一切都是共处理的,请改用。which mysql
which mysqladmin
mysql --version
注意:@julianromera指出zsh不支持导出函数,因此在这种情况下,最好使用别名,例如.请注意,您的别名可能无法从子shell中使用(例如在执行shell脚本时)。alias mysql='/Applications/MAMP/Library/bin/mysql'