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
相关产品推荐
相关产品推荐

