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

Laragon环境下Apache无法加载curl、intl、pdo_pgsql扩展但CLI正常

问题描述

在Windows 10上通过Laragon搭建PHP环境时出现以下异常:

  • Apache启动后,php_errors.log中持续出现curl、intl、pdo_pgsql扩展加载失败的警告
  • phpinfo()页面显示上述扩展未加载,但终端执行php -m时,这些扩展却能正常显示
  • CLI与Apache使用同一php.ini配置文件,对应扩展的.dll文件存在于指定目录,且其他扩展(如mysql)可正常加载
  • 已尝试重新加载Apache、重启系统,且php.ini中相关扩展的注释已取消,问题仍未解决

错误日志

[13-Sep-2024 01:03:32 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'curl' (tried: C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext\curl (No se puede encontrar el módulo especificado), C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext\php_curl.dll (No se puede encontrar el módulo especificado)) in Unknown on line 0
[13-Sep-2024 01:03:32 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'intl' (tried: C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext\intl (No se puede encontrar el módulo especificado), C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext\php_intl.dll (No se puede encontrar el módulo especificado)) in Unknown on line 0
[13-Sep-2024 01:03:32 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_pgsql' (tried: C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext\pdo_pgsql (No se puede encontrar el módulo especificado), C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext\php_pdo_pgsql.dll (No se puede encontrar el módulo especificado)) in Unknown on line 0

CLI验证信息

执行php -m部分输出:

C:\laragon\www
λ php -m
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
...
iconv
intl
json
...
PDO
pdo_mysql
pdo_pgsql
Phar
...

执行php --ini输出:

C:\laragon\www
λ php --ini
Configuration File (php.ini) Path:
Loaded Configuration File:         C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed:      (none)
解决方案

1. 匹配Apache与PHP的架构版本

你的PHP是64位版本(php-8.1.10-Win32-vs16-x64),需确保Laragon使用的Apache也是64位:

  • 打开Laragon菜单,选择Apache -> Version,查看当前版本是否带有win64标识
  • 若为32位版本,切换到对应PHP版本的64位Apache(Laragon会自动完成下载安装)

2. 让Apache加载PHP依赖库

curl、intl等扩展依赖PHP根目录下的动态库(如libcurl.dll、icu*.dll),Apache启动时可能无法找到这些文件。修改Apache的httpd.conf配置:

  • 在文件开头添加一行:
    SetEnv PATH "C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64;${PATH}"
    
  • 保存配置后重启Apache

3. 确认PHP扩展路径配置

检查php.ini中的extension_dir配置,确保指向正确的扩展目录:

  • 推荐使用绝对路径:
    extension_dir = "C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\ext"
    
  • 手动确认该目录下存在php_curl.dll、php_intl.dll、php_pdo_pgsql.dll文件

4. 验证Apache的PHP模块加载配置

确保httpd.conf中加载的PHP模块与当前PHP版本匹配:

  • 找到如下配置行,确认路径和文件名正确:
    LoadModule php8_module "C:\laragon\bin\php\php-8.1.10-Win32-vs16-x64\php8apache2_4.dll"
    
  • 若该文件不存在,需重新下载包含对应Apache模块的PHP版本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 13:07:34