我试图在Windows 10 64位(WAPP)上使用pgsql扩展。
我有:
php.ini中的所有postgresql扩展LoadFile加载pgsql.dllpgsql.dll移动到Apache (我尝试了来自php文件夹和postgresql的dll )但还是没有结果。
pgsql仅在php.exe -m中可见,但在phpinfo()、extension_loaded()、get_loaded_extensions()中不可见。
我的php版本是7.1.8,PostgreSQL是9.6,Apache是2.4.27。
我的php.exe -m输出:

有什么问题吗?
发布于 2017-08-21 09:50:12
解出
好的,经过几个小时的查找,我发现了这个问题,并且能够用phpinfo()中没有显示的pdo_pgsql和pgsql模块来解决这个问题。
解决方案
在取消对php.ini中的扩展进行注释之后,进入httpd.conf并在所有LoadModule行的顶部添加以下内容:
LoadFile "C:/Program /PostgreSQL/9.6/bin/libpq.dll“
(假设您使用的是最新版本的PostgreSQL,否则将编号更改为您正在使用的版本)。
保存并重新启动Apache。转到phpinfo(),您将看到它已经加载。
缘由
即使将libpg.dll复制到Apache/bin文件夹,Apache也无法看到它。
环境
发布于 2017-08-14 13:54:55
通常,命令行PHP不与Apache共享配置文件,换句话说,Apache与您编辑的配置文件不同。
使用运行在apache中的phpinfo()并搜索php.ini来定位已加载的配置文件。
发布于 2019-05-13 16:16:46
接受的解决方案也适用于最新版本的PHP 7,即Windows 10环境中的7.3.5。
将LoadFile指令包含在所有LoadModule指令的顶部,效果很好。我也在为解决方案而奋斗。在上述环境中,似乎存在一些问题,即默认情况下libpq.dll不会加载。解决办法太棒了。
https://stackoverflow.com/questions/45675974
复制相似问题