Windows系统MAMP环境下PHP 8.2 curl扩展无法启用求助
问题核心
PHP 8.1版本curl扩展可正常工作,但8.2.1/8.2.2版本加载失败,错误提示翻译如下:
PHP 警告: PHP启动时无法加载动态库'php_curl.dll' (尝试路径: C:/MAMP/bin/php/php8.2.1/ext\php_curl.dll (找不到指定的模块), C:/MAMP/bin/php/php8.2.1/ext\php_php_curl.dll.dll (找不到指定的模块)) 在未知文件第0行
已尝试取消php_curl.dll注释、更换curl版本、补充system32文件、验证其他扩展可正常加载,重启后问题仍存在。
针对性解决步骤
匹配PHP 8.2.x的curl依赖库
不要自行替换第三方curl版本,直接从MAMP官方重新下载对应PHP 8.2.x的完整安装包,覆盖现有C:/MAMP/bin/php/php8.2.x/目录,确保自带的libcurl.dll是适配PHP 8.2的版本。修正PHP配置文件
打开PHP 8.2.x的php.ini,做两项检查:- 确认扩展路径配置正确:
extension_dir = "C:/MAMP/bin/php/php8.2.x/ext" - 将curl扩展的启用语句改为PHP 7.4+推荐格式,避免拼写错误:
extension=curl
- 确认扩展路径配置正确:
调整系统环境变量优先级
打开系统环境变量的Path,将C:/MAMP/bin/php/php8.2.x/移到system32路径之前,避免系统加载旧版本的curl依赖库,修改后重启电脑生效。检查依赖库完整性
用Dependency Walker工具打开php_curl.dll,查看是否缺失SSL相关依赖(如ssleay32.dll、libeay32.dll),将PHP 8.2.x目录下的所有相关DLL文件复制到ext目录,或确保这些文件在系统Path可访问路径中。重置MAMP PRO配置
在MAMP PRO的PHP设置界面,先禁用curl扩展并应用设置、重启服务器;再重新启用curl扩展,再次重启服务器,避免手动修改php.ini后被GUI配置覆盖。
内容的提问来源于stack exchange,提问作者Timo

