首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pgsql扩展没有加载。

pgsql扩展没有加载。
EN

Stack Overflow用户
提问于 2017-08-14 13:44:28
回答 3查看 5.8K关注 0票数 0

我试图在Windows 10 64位(WAPP)上使用pgsql扩展。

我有:

  • 重新启动Apache
  • 取消注释php.ini中的所有postgresql扩展
  • 使用LoadFile加载pgsql.dll
  • pgsql.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输出:

有什么问题吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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也无法看到它。

环境

  • Windows Server 2016 (也适用于Windows 10 )
  • Apache 2.4.26
  • (x64) PHP7.1.8 (x64 ThreadSafe VC14)
  • PostgreSQL 9.6.4 (x64)
票数 4
EN

Stack Overflow用户

发布于 2017-08-14 13:54:55

通常,命令行PHP不与Apache共享配置文件,换句话说,Apache与您编辑的配置文件不同。

使用运行在apache中的phpinfo()并搜索php.ini来定位已加载的配置文件。

票数 0
EN

Stack Overflow用户

发布于 2019-05-13 16:16:46

接受的解决方案也适用于最新版本的PHP 7,即Windows 10环境中的7.3.5。

将LoadFile指令包含在所有LoadModule指令的顶部,效果很好。我也在为解决方案而奋斗。在上述环境中,似乎存在一些问题,即默认情况下libpq.dll不会加载。解决办法太棒了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45675974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档