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

Windows10下Apache环境PHP无法加载sqlite3/pdo_sqlite但CLI正常

解决Windows下Apache无法加载PHP sqlite3/pdo_sqlite扩展的问题

我之前在Windows环境配置Apache+PHP的时候也碰到过一模一样的坑,结合你的环境和报错信息,咱们一步步来排查解决:

先明确你的环境

  • 操作系统:Windows 10
  • Apache 2.4 路径:C:/Apache24
  • PHP 7.4.1 路径:C:/php7
  • 核心问题:命令行php -m能正常加载sqlite3和pdo_sqlite,但Apache的phpinfo里看不到这两个扩展,且Apache日志报“无法加载动态库”(尽管dll文件确实存在)

排查与解决方案

1. 先查Apache和PHP的位数是否匹配(最常见原因!)

Windows下这种“文件存在但提示找不到”的报错,80%都是位数不兼容导致的:

  • 右键点开C:\Apache24\bin\httpd.exe → 属性 → 详细信息,看“系统类型”是32位还是64位;
  • 同样检查C:\php7\php.exe的位数,必须保证两者完全一致(比如都是32位,或者都是64位);
  • 如果不匹配,赶紧去官网下载对应位数的Apache或PHP重装,这个是硬伤,其他方法都救不了。

2. 给Apache补上PHP依赖库的访问路径

命令行能加载扩展,是因为运行php.exe时会自动读取它所在目录(C:\php7)的依赖dll(比如sqlite3.dll),但Apache的运行环境PATH里大概率没加C:\php7,所以找不到依赖:

  • 解决步骤:
    1. 右键「此电脑」→ 属性 → 高级系统设置 → 环境变量 → 系统变量里找到PATH,点击「新建」,添加C:\php7;
    2. 也可以把C:\php7里的sqlite3.dll复制到C:\Windows\System32(64位系统)或者C:\Windows\SysWOW64(32位系统);
    3. 一定要重启Apache服务(光重启浏览器没用,必须重启Apache服务),环境变量变更才会生效。

3. 核对php.ini的扩展配置有没有写错

虽然你说已经启用了扩展,但还是要仔细检查一遍:

  • 确保php.ini里的扩展行是下面两种写法之一(PHP7+都支持):
    # 写法1:省略前缀和后缀
    extension=pdo_sqlite
    extension=sqlite3
    
    # 写法2:写全文件名
    extension=php_pdo_sqlite.dll
    extension=php_sqlite3.dll
    
  • 注意别拼错单词,比如把pdo_sqlite写成pdo_sqlite3,或者漏了字母,这种低级错误很容易犯。

4. 检查Apache运行账户的文件权限

有时候Apache的服务账户没有读取C:\php7\ext目录的权限,也会导致加载失败:

  • 右键C:\php7\ext文件夹 → 属性 → 安全 → 编辑 → 添加,找到Apache的运行账户(默认是NT AUTHORITY\SYSTEM,如果是你自定义的账户就选对应的);
  • 给这个账户添加「读取和执行」「列出文件夹内容」「读取」的权限,应用后重启Apache。

关于日志里的双反斜杠

日志里的C:\\php7\\ext\\...只是日志输出时的转义字符,实际Apache搜索的路径就是C:\php7\ext\...,这个不是问题,不用管它。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:07:31