2017-08-14 195 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)