Windows11下Apache加载PHP7的OpenSSL扩展失败问题及解决
Windows11下Apache2.4加载PHP7 OpenSSL扩展失败的排查与解决
问题现象
Windows11开发环境中,Apache2.4搭配PHP7部署时,始终报错无法找到php_openssl.dll,但PHP CLI模式下可正常加载该扩展;同时测试PHP8版本搭配Apache2.4时,OpenSSL扩展能正常工作,无此问题。
排查过程
先后尝试过以下常规方案,但均未解决问题:
- 修改php.ini中的
extension_dir为绝对路径,确保指向PHP扩展目录 - 手动将
php_openssl.dll复制到Apache的bin目录、系统System32目录 - 调整用户环境变量的PATH,添加PHP根目录
进一步对比差异后发现:
- CLI模式属于用户进程,会读取用户环境变量,因此能正常加载扩展
- Apache作为系统服务运行,启动时读取的是系统环境变量,而非用户环境变量
- PHP8版本无此问题,推测是其安装包或默认配置已适配系统服务的环境变量读取逻辑
解决方法
将PHP7的根目录添加到系统环境变量的PATH中,添加完成后重启Apache服务,即可正常加载php_openssl.dll扩展。
内容的提问来源于stack exchange,提问作者Iain H
相关产品推荐
相关产品推荐

