Composer安装PHPSpreadsheet提示gd扩展缺失但已启用的问题求助
问题排查与解决方案
这问题我之前帮不少开发者排查过,核心原因其实是网页环境的PHP和CLI模式的PHP使用了不同的php.ini配置文件——你检查的都是网页端(比如WAMP的Apache服务)的GD配置,但Composer是通过CLI命令行模式运行的,它读取的是CLI版本PHP对应的配置文件,而不是你修改的那个!
具体解决步骤:
确认CLI模式PHP的配置文件路径
打开命令提示符,运行以下命令:php --ini重点关注输出中的
Loaded Configuration File行,这就是Composer实际使用的php.ini路径(比如你错误提示里的C:\php\php.ini),这大概率和你之前检查的WAMP网页端php.ini不是同一个文件。启用CLI配置文件中的GD扩展
打开上述路径的php.ini文件,找到extension=php_gd2.dll这一行,确保前面没有分号(;)注释(如果有分号就去掉),保存修改后的文件。验证CLI是否成功加载GD扩展
重启命令提示符窗口(避免配置缓存),运行以下命令查看已加载的扩展:php -m在输出的模块列表中找到
gd,出现即说明CLI模式已成功加载GD扩展。重新执行Composer安装命令
回到项目目录,再次运行:composer require phpoffice/phpspreadsheet
补充说明:
至于另一台PHP5.6.35的电脑能正常运行,大概率是因为那台电脑的CLI模式PHP与网页端PHP共用了同一个php.ini文件,或者已经提前在CLI配置中开启了GD扩展,所以未出现此问题。PHPSpreadsheet确实支持PHP5.6及以上版本,版本兼容性本身不存在问题。
内容的提问来源于stack exchange,提问作者user1710989
相关产品推荐
相关产品推荐

