PHP文件配置扩展dll文件缺失修复方法(完整步骤)

胖芳姑娘_8696

胖芳姑娘_8696

2026-10-07

287人浏览

原创

根本原因是php加载扩展时缺失底层依赖dll(如vcruntime140.dll、libcrypto-1_1-x64.dll),而非扩展文件本身路径错误;需按compiler版本安装匹配vc++运行库、将openssl dll置于php根目录、确保extension_dir为绝对路径且启用语法正确,并将php根目录加入系统path后重启环境。

php文件配置扩展dll文件缺失修复方法(完整步骤)

PHP 报“Unable to load dynamic library”或运行时弹窗提示“缺少 xxx.dll”,根本不是扩展文件(如 php_curl.dll)没放对位置,而是 PHP 启动或加载扩展过程中,底层依赖的 DLL(比如 vcruntime140.dll、libcrypto-1_1-x64.dll、libssh2.dll)压根没被系统找到。修复需分层处理:先保主程序能跑,再让扩展能用,最后确保调用不崩溃。

确认 PHP 编译环境与 VC 运行库匹配

这是最常被跳过的一步,但决定后续所有操作是否有效:

  • 运行 php --info | findstr "Compiler"(Windows CMD)或打开 phpinfo() 页面,查找 Compiler 行,明确是 MSVC15(VS2017)、MSVC16(VS2019)还是 MSVC17(VS2022)
  • 对应下载微软官方 vc_redist.x64.exe(即使你用的是 32 位 PHP,phpEnv 等轻量包默认运行在 x64 系统环境,优先装 x64 版):
    → VC++ 2015–2022 x64 运行库
  • 以管理员身份运行安装,安装后重启电脑;验证 C:\Windows\System32\vcruntime140.dll(VC15/16)或 vcruntime140_1.dll(VC17)是否存在

补全 OpenSSL 及扩展依赖 DLL 到 PHP 根目录

curl、openssl、ldap 等扩展报错,90% 源于 OpenSSL 1.1+ 运行时缺失,且不能靠复制旧版 ssleay32.dll 解决:

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载
  • 从 windows.php.net 下载与你 PHP 版本完全一致的 ZIP 包(如 php-8.2.12-Win32-vs16-x64.zip)
  • 解压后,将同级目录下的 libcrypto-1_1-x64.dll 和 libssl-1_1-x64.dll(PHP 8.2+ 多为 -x64 后缀)直接复制到你的 phpEnv\php\ 目录下——即和 php.exe 在同一层,不是 放进 ext/ 或 System32
  • 若仍报错,用 Dependencies.exe 打开 php_curl.dll,看红色标记缺失项,针对性补全(如 libssh2.dll 也需放 PHP 根目录)

检查 extension_dir 路径与扩展启用方式

路径写错或启用语法过时,会让 PHP “看见却不用”扩展:

  • 打开生效的 php.ini(用 php --ini 确认路径),定位 extension_dir 行
  • 必须写绝对路径 + 正斜杠 + 无中文空格,例如:
    extension_dir = "D:/phpEnv/php/ext"(✅)
    extension_dir = "D:\phpEnv\php\ext"(❌ 反斜杠易被转义)
    extension_dir = "./ext"(❌ phpEnv 对相对路径解析不稳定)
  • 确认该路径下真实存在目标文件,如 php_curl.dll;PHP 8.0+ 启用扩展应写 extension=curl(去后缀),而非 extension=php_curl.dll

把 PHP 根目录加入系统 PATH 并重启环境

很多用户配好了 extension_dir 却仍失败,是因为扩展依赖的 DLL(如 libssh2.dll)不在系统搜索路径中:

  • 进入「控制面板 → 系统 → 高级系统设置 → 环境变量」
  • 在「系统变量」中编辑 Path,新增一行:
    C:\phpenv\php\php-8.2.12-Win32-vs16-x64(替换成你实际的 PHP 安装根目录,不含 \ext)
  • 保存后,关闭所有已打开的 CMD/PowerShell/IDE 窗口,重新打开终端,运行 where vcruntime140.dll,若返回该 PHP 目录下的路径,说明生效
  • 重启 Apache/Nginx/php-fpm 服务,或重启 phpEnv 控制面板

php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!

相关文章

.dll文件大全
.dll文件大全

.dll文件缺失怎么办?.dll文件在哪下载?不用担心,这里为大家提供了所有的.dll文件下载,无论用户丢失的是什么.dll文件,在这里都能找到。用户保存后,在网盘搜索dll文件全称即可查找下载!

下载

相关标签:

php教程 php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2023.09.01

10084

6

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

5981

5

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.11

2075

5

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

2023.10.23

3748

4

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

2023.10.23

4454

6

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.03

3491

9

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.09

4977

8

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

2023.11.13

3882

8

sprintf函数用法详解
sprintf函数用法详解

sprintf函数的用法:1、格式化字符串;2、指定输出宽度和精度;3、返回值。更多关于sprintf函数用法详解的内容,大家可以阅读下面的文章。

2023.11.27

11862

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
零基础新手入门PHP教程
零基础新手入门PHP教程

共237课时 | 49.1万人学习

新版php入门教程
新版php入门教程

共85课时 | 49.7万人学习

李炎恢PHP视频教程第一季
李炎恢PHP视频教程第一季

共136课时 | 61.1万人学习