Windows服务器部署Moodle遇PGSQL扩展配置问题求助
解决Moodle安装时PostgreSQL扩展配置问题
1. 确认修改的是正确的php.ini文件
Windows环境下PHP往往存在多个php.ini文件(CLI模式和Web服务器模式可能使用不同的配置文件),先创建一个phpinfo.php文件,内容如下:
<?php phpinfo(); ?>
通过Web浏览器访问这个文件,找到Loaded Configuration File项,确认你修改的是该路径下的php.ini,避免改错文件白忙活。
2. 验证扩展文件存在且路径正确
- 确认PHP的
ext目录(通常是C:\php\ext)下存在php_pgsql.dll和pdo_pgsql.dll文件,这两个是PHP官方提供的PostgreSQL扩展文件。 libpq.dll是PostgreSQL的客户端依赖库,需要确保它能被Web服务器加载:- 直接复制PostgreSQL安装目录
bin文件夹下的libpq.dll到PHP根目录,或者添加PostgreSQL的bin目录到系统环境变量PATH中。
- 直接复制PostgreSQL安装目录
3. 修正php.ini中的扩展配置
PHP 8+在Windows平台的扩展配置不需要带php_前缀和.dll后缀,你之前添加的extension=php_pgsql.dll和extension=libpq.dll属于冗余配置,可能导致加载异常。保留以下配置即可:
extension=pdo_pgsql extension=pgsql
(extension=pdo_mysql如果不需要MySQL支持可以注释掉,不影响PostgreSQL配置)
4. 验证扩展是否成功加载
重启Web服务器后,再次访问phpinfo.php,搜索pgsql和pdo_pgsql关键字,如果能看到对应的模块信息,说明扩展加载成功;如果没找到,查看Web服务器的错误日志(比如Apache的error.log),里面会有扩展加载失败的具体原因(如文件缺失、依赖库版本不兼容等)。
5. 检查PostgreSQL客户端库版本兼容性
确保使用的libpq.dll版本与你的PostgreSQL 12服务器版本一致,不要用高于12版本的libpq.dll,避免出现版本兼容性问题。
内容的提问来源于stack exchange,提问作者Lavesh Pillay
相关产品推荐
相关产品推荐

