You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

EasyPHP切换至PHP 8.1.2时openssl扩展加载失败求助

解决PHP 8.1.2在EasyPHP DevServer中无法加载openssl扩展的方法

针对你遇到的PHP 8.1.2切换后openssl扩展加载失败的问题,以下是几个针对性的排查和解决方向:

1. 检查PHP 8.1根目录的OpenSSL依赖库

PHP 8.1依赖OpenSSL 1.1.x及以上版本的libcrypto-1_1-x86.dll和libssl-1_1-x86.dll,这两个文件必须放在PHP 8.1的根目录(而非ext文件夹):

  • 打开C:\Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\php\php812vs16x86x230327010135目录,确认这两个dll是否存在;
  • 如果缺失,从PHP官方下载对应版本的线程安全(TS)版PHP包,提取这两个dll到该目录,不要用旧版本PHP的dll替换(版本不兼容)。

2. 临时将PHP 8.1根目录加入系统PATH测试

PHP 8.1对依赖库的加载逻辑较旧版本有变化,即使旧版本无需配置PATH,新版本可能需要:

  • 右键「此电脑」→ 属性 → 高级系统设置 → 环境变量,在系统PATH中添加C:\Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\php\php812vs16x86x230327010135;
  • 重启Apache和EasyPHP服务后测试,若警告消失,说明是依赖库路径问题,可改用下面的局部配置方法避免修改全局PATH。

3. 修改EasyPHP启动脚本添加临时PATH

不想修改系统全局PATH的话,可在EasyPHP的启动脚本中设置临时环境变量:

  • 找到EasyPHP启动Apache或PHP的.bat脚本(通常在DevServer的bin或scripts目录);
  • 在脚本开头添加一行:
    set PATH=C:\Program Files (x86)\EasyPHP-Devserver-17\eds-binaries\php\php812vs16x86x230327010135;%PATH%
    
  • 保存后重启服务,该配置仅在EasyPHP运行时生效,不影响其他程序。

4. 确认PHP 8.1的线程安全(TS)版本匹配Apache

EasyPHP的Apache是线程安全架构,PHP必须对应线程安全(TS)版本:

  • 检查PHP 8.1目录的文件名,确认包含ts标识(如php812vs16x86ts...);
  • 如果是非线程安全(NTS)版本,下载替换为同版本的TS版PHP即可。

5. 排查php.ini的潜在冲突配置

  • 检查php.ini中是否重复配置了openssl扩展,比如同时存在extension=openssl和extension=php_openssl.dll,保留其中一行即可;
  • 暂时注释掉openssl.cafile或openssl.capath相关配置,排除因CA文件路径错误导致的间接加载问题。

6. 用Dependency Walker检查依赖缺失

下载Dependency Walker工具,打开PHP 8.1的ext\php_openssl.dll,工具会直观显示该扩展依赖的所有库文件:

  • 若某dll显示红色标记,说明该文件缺失,将对应的dll复制到PHP根目录或系统PATH中即可。

内容的提问来源于stack exchange,提问作者cFreed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 22:02:33