2017-08-14 273 views
0

我想在Windows 10 64位(WAPP)上使用pgsql扩展名。
我:pgsql扩展名未加载

  • 重新启动Apache的
  • 所有未被注释的PostgreSQL扩展在php.ini
  • 使用LoadFile加载pgsql.dll
  • 移动pgsql.dll到Apache斌(我试过两个DLL从PHP文件夹和PostgreSQL)

但仍然没有结果。
pgsql仅在php.exe -m中可见,但不在phpinfo(),extension_loaded()get_loaded_extensions()中可见。
我的PHP版本是7.1.8和PostgreSQL是9.6和Apache是​​2.4.27
我的php.exe -m输出:
php -m
可能是什么问题?

回答

0

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

使用phpinfo()通过Apache运行并搜索php.ini来查找加载的配置文件。

3

[解决]

好的,寻找在几个小时后,我发现这个问题,并能够与所述pdo_pgsql和pgsql的模块中的phpinfo没有显示()来解决这个问题。

[解决方法]

在php.ini中取消对扩展后,进入httpd.conf文件,并在所有在LoadModule线的顶部添加以下内容:

的LoadFile“C:/ Program Files文件/ PostgreSQL/9.6/bin/libpq.dll“

(假设您使用的是PostgreSQL的最新版本,否则将数字更改为您使用的版本)。

保存并重新启动Apache。转到phpinfo(),你会看到它被加载。

[原因]

Apache是​​无法看到,即使你把它复制到Apache/bin文件夹libpg.dll。

[环境]

  • 的Windows Server 2016(适用于Windows 10为目标)
  • 的Apache 2.4.26
  • (x64)的PHP 7.1.8(64 ThreadSafe的VCl 4)
  • 的PostgreSQL 9.6。4(x64)