在macOS 12上用MAMP安装Composer后报错,如何指定phpmamp运行?
问题描述
在macOS 12(Monterey)系统上使用MAMP,为了调用MAMP自带的PHP,添加了如下别名:
nano ~/.bash_profile alias phpmamp='/Applications/MAMP/bin/php/php5.4.10/bin/php'
随后执行命令安装Composer:
curl -sS https://getcomposer.org/installer | phpmamp
安装成功后得到提示:
Composer (version 2.4.2) successfully installed to: /Users/johnmiles/composer.phar Use it: php composer.phar
将Composer设置为全局可用:
sudo mv composer.phar /usr/local/bin/composer
但运行composer命令时出现报错:
env: php: No such file or directory
解决方法
方法1:修改Composer脚本的Shebang行
全局Composer脚本默认会查找系统路径下的php命令,而你的系统默认路径中没有可用的PHP。直接修改脚本的第一行,指定使用MAMP的PHP路径即可:
- 打开全局Composer脚本:
sudo nano /usr/local/bin/composer
- 将第一行的
#!/usr/bin/env php替换为MAMP PHP的绝对路径:
#!/Applications/MAMP/bin/php/php5.4.10/bin/php
- 保存退出(按
Ctrl+O确认保存,回车,再按Ctrl+X退出),之后即可正常运行composer命令。
方法2:将MAMP的PHP路径加入系统环境变量
把MAMP的PHP目录添加到系统PATH中,让系统默认的php命令指向MAMP的PHP:
- 打开
~/.bash_profile(如果使用zsh终端,需修改~/.zshrc):
nano ~/.bash_profile
- 添加以下内容:
export PATH="/Applications/MAMP/bin/php/php5.4.10/bin:$PATH"
- 让配置立即生效:
source ~/.bash_profile
之后系统的php命令就会调用MAMP的PHP,直接运行composer即可正常使用。
方法3:为Composer创建别名
如果不想修改系统环境变量或Composer脚本,可以直接给Composer设置别名,指定用phpmamp来执行:
- 打开
~/.bash_profile:
nano ~/.bash_profile
- 添加别名配置:
alias composer='phpmamp /usr/local/bin/composer'
- 让配置立即生效:
source ~/.bash_profile
之后运行composer命令时,就会自动通过phpmamp调用MAMP的PHP来执行。
内容的提问来源于stack exchange,提问作者bart
相关产品推荐
相关产品推荐

