为composer install启用SSL遇问题:openssl扩展不可用求助
解决Composer安装时OpenSSL扩展不可用的问题
我完全理解你的困扰——明明跟着所有教程改了配置,还是卡在这个OpenSSL的报错上,连Laragon的php.ini都打不开,确实让人头疼。先给你梳理下关键问题和解决方案:
先搞清楚几个关键点
- 你提到的
Factory.php是Composer自身的核心文件,不是你的项目文件,所以不用在自己的项目里找它,报错本质是Composer检测不到PHP的OpenSSL扩展。 - 很多人会忽略:Web环境(Apache用的)和CLI命令行环境(Composer用的)可能用的是不同的php.ini文件,你之前修改的可能只是Web用的,而Composer没用到。
具体解决步骤
1. 找到Composer实际使用的php.ini
打开Laragon自带的Terminal(或者Windows命令提示符),执行这条命令:
php --ini
重点看输出里的Loaded Configuration File这一行——这才是Composer执行时真正加载的php.ini路径,而不是你以为的那个!如果显示(none),说明PHP CLI没找到配置文件,这就是问题根源。
2. 修复Laragon无法打开php.ini的问题
如果Laragon右键菜单打开php.ini提示找不到文件,大概率是Laragon的配置指向错了路径:
- 右键Laragon托盘图标 > PHP > Version,确认你当前用的是PHP7(对应你说的
C:\laragon\bin\php\PHP7) - 手动找到
C:\laragon\bin\php\PHP7\php.ini,右键创建它的快捷方式,以后直接编辑这个快捷方式对应的文件;或者打开Laragon的Settings > PHP,手动指定php.ini的路径为这个文件。
3. 确保OpenSSL扩展真正启用
在刚才找到的正确的php.ini文件里,做这两个检查:
- 找到
;extension=openssl,去掉前面的分号,变成extension=openssl - 找到
;extension_dir = "ext",去掉分号,变成extension_dir = "ext"(Windows下这个路径是相对PHP根目录的,C:\laragon\bin\php\PHP7\ext就是扩展所在的文件夹)
修改完保存后,在Terminal里执行:
php -m
看输出的模块列表里有没有openssl——如果有,说明扩展已经成功启用。
4. 重启服务并测试
- 右键Laragon托盘图标 > Restart All,重启Apache和PHP服务
- 再次执行
composer install,应该就能正常运行了
额外排查技巧
如果还是不行,执行composer diagnose,Composer会自动检测你的环境配置,给出更具体的错误提示,帮你定位问题。
重要提醒
千万别随便设置disable-tls,这会让Composer的包请求失去SSL/TLS保护,不仅容易遭遇恶意包,还可能导致很多官方包仓库无法正常访问,解决OpenSSL的问题才是稳妥的方案。
内容的提问来源于stack exchange,提问作者nouf alsalem
相关产品推荐
相关产品推荐

