MAMP调用错误PHP版本问题求助
问题描述
我正在运行MAMP 7.0免费版,已在MAMP界面选择PHP版本8.3.9。本地PATH已配置指向PHP 8.3.9:
~ % echo $path /Applications/MAMP/bin/php/php8.3.9/bin /Applications/MAMP/Library/bin /Applications/MAMP/Library/bin/mysql57/bin [其他非PHP相关内容] ~ % which php /Applications/MAMP/bin/php/php8.3.9/bin/php
但MAMP的htdocs目录下的项目实际使用的是PHP 8.2.20,phpinfo()显示加载路径为/Applications/MAMP/bin/php/php8.2.20,对应的配置文件为该版本下的conf/php.ini。
2024.10.30更新:确认MAMP为每个PHP版本保留独立的php.ini文件,当前加载的是/Applications/MAMP/bin/php/php8.2.20/conf/php.ini。
解决思路与方案
MAMP免费版的PHP版本切换逻辑和Pro版差异较大,问题根源及修复方法如下:
问题原因
- 界面选择未同步到Web服务配置
MAMP免费版的PHP版本选择界面存在偶发同步问题,即使在界面选中8.3.9,Apache/Nginx的配置可能仍停留在旧版本。 - PATH仅控制CLI版本
你配置的系统PATH只影响终端的PHP命令行(CLI)执行环境,和MAMP的Web服务使用的PHP版本完全无关。
具体修复步骤
方法1:重启+重新选择版本
- 彻底关闭MAMP(包括退出后台运行的进程)
- 重新打开MAMP,在PHP版本选择器中再次选中8.3.9,点击「Start Servers」启动服务
- 刷新项目页面,查看
phpinfo()确认版本是否切换成功
方法2:手动修改Apache配置文件
MAMP免费版的Apache主配置文件路径为:/Applications/MAMP/conf/apache/httpd.conf
打开文件后,找到加载PHP模块的行:
LoadModule php8_module /Applications/MAMP/bin/php/php8.2.20/modules/libphp.so
将路径中的php8.2.20替换为php8.3.9,保存文件后重启MAMP服务。
方法3:修正php.ini关联路径
如果Web服务已切换版本但加载的仍是旧配置,检查Apache配置中的PHPIniDir行:
PHPIniDir "/Applications/MAMP/bin/php/php8.2.20/conf/"
将路径替换为/Applications/MAMP/bin/php/php8.3.9/conf/,保存后重启服务即可。
内容的提问来源于stack exchange,提问作者somnolentsurfer
相关产品推荐
相关产品推荐

