我正在尝试在Windows 10 64位(WAPP)上使用pgsql扩展。
我有:
php.ini
LoadFile
加载pgsql.dll
pgsql.dll
移动到Apache bin(我从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
输出:
可能是什么问题?
答案 0 :(得分:3)
[解决]
好的,经过几个小时的查看,我发现了问题,并且能够解决问题,pdo_pgsql和pgsql模块没有在phpinfo()中显示。
[溶液]
在php.ini中取消注释扩展后,进入httpd.conf并在所有LoadModule行的顶部添加以下内容:
LoadFile“C:/ Program Files / PostgreSQL / 9.6 / bin / libpq.dll”
(假设您使用的是最新版本的PostgreSQL,否则请将数字更改为您正在使用的版本)。
保存并重启Apache。转到phpinfo(),你会看到它被加载了。
[原因]
即使您将libpg.dll复制到Apache / bin文件夹中,它也无法看到它。
[环境]
答案 1 :(得分:0)
通常,命令行PHP不与Apache共享配置文件,换句话说,Apache php.ini
与您编辑的那个不同。
使用运行apache的phpinfo()
并搜索php.ini
以找到已加载的配置文件。
答案 2 :(得分:0)
公认的解决方案也适用于最新版本的PHP 7,即Windows 10环境下的7.3.5。
在所有LoadModule指令的顶部包含LoadFile指令非常容易。我也一直在努力寻找解决方案。似乎在上述环境中存在一些问题,默认情况下libpq.dll没有被加载。解决方案很棒。