在使用phpEnv搭建本地PHP开发环境时,部分用户启动服务或执行涉及HTTPS、加密签名等操作时,会弹出缺少libcrypto-1_1-x64.dll的提示,并伴随OpenSSL初始化失败。该文件属于OpenSSL 1.1.x的64位动态库,PHP通过它实现SSL通信与数据加密。

问题产生的原因
常见的触发原因主要有三类:一是phpEnv自带的OpenSSL模块与系统已安装的运行库版本冲突;二是libcrypto-1_1-x64.dll未出现在系统PATH或PHP目录中;三是缺少Visual C++ 2015-2019运行库支持。
- phpEnv目录中未包含对应dll文件
- 系统System32或SysWOW64目录缺少该文件
- 环境变量未正确指向phpEnv的扩展路径
确认缺失文件位置
可以先在phpEnv安装目录下搜索libcrypto-1_1-x64.dll,若找不到说明集成包不完整。也可在命令行执行以下PHP代码检测OpenSSL状态:
<?php
// 检测openssl扩展是否加载
if (extension_loaded('openssl')) {
echo 'openssl loaded';
} else {
echo 'openssl missing';
}
// 查看已加载的php配置路径
echo PHP_CONFIG_FILE_PATH;
?>
解决方法一:复制dll到系统目录
若phpEnv的PHP文件夹中存在libcrypto-1_1-x64.dll,将其复制到C:WindowsSystem32与C:WindowsSysWOW64。如本地没有,可从同版本phpEnv或官方OpenSSL包提取。
解决方法二:配置环境变量
将phpEnv的php目录加入系统PATH,确保命令行能检索到依赖库。操作后在终端运行:
# 查看openssl是否可用 php -i | findstr openssl
解决方法三:安装VC运行库
前往微软官网下载Visual C++ 2015-2019 Redistributable x64安装,重启电脑后再启动phpEnv。
| 方案 | 适用情况 |
|---|---|
| 复制dll | 文件存在但未被系统加载 |
| 配置PATH | 路径未指向php目录 |
| 装VC库 | 运行库缺失导致加载失败 |
验证修复结果
修复后使用简单请求测试HTTPS访问,确认不再报缺少libcrypto-1_1-x64.dll。示例:
<?php
// 测试curl访问https
$ch = curl_init('https://ipipp.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$res = curl_exec($ch);
if ($res === false) {
echo curl_error($ch);
} else {
echo 'request ok';
}
curl_close($ch);
?>
经过上述步骤,phpEnv的OpenSSL报错通常可彻底解决,本地开发环境恢复正常运行。
phpEnvlibcrypto-1_1-x64.dllOpenSSL修改时间:2026-07-25 15:30:25