7

我正在尝试使用postgresPHP,但 Apache 无法加载扩展。

我在用着:

Windows 7 (64bit) with xampp, php version 5.4.7 我已经设置了postgres,其他应用程序可以访问数据库。

当我在 php.ini 中取消注释以下行时

extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

我在 php-error-log 中收到一些错误:

[22-Jun-2013 13:15:22 UTC] PHP 警告:PHP 启动:无法加载动态库 'C:\xampp\php\ext\php_pdo_pgsql.dll' - Das angegebene Modul wurde nicht gefunden。在第 0 行的未知中

但是路径是正确的,文件在那里。

经过一番研究,我将这一行添加到我的 http.conf 中:

LoadFile "C:/Program Files/PostgreSQL/9.2/bin/libpq.dll"

但是无论我把这条线放在哪里,apache-service 都无法再启动了。所以我删除了这条线。

我还尝试将这 2 个路径添加到我的 PATH 变量中:

C:\Program Files\PostgreSQL\9.2\bin
C:\xampp\php\ext

现在错误变为

在第 0 行的未知中

一切都在同一台本地机器上运行。并且使用 Linux / 单独的服务器不是一种选择。

phpinfo()的没有显示任何与 postgres 相关的东西。

我希望有人知道如何解决这个问题,谷歌根本没有帮助我。

4

2 回答 2

17

好的,不知何故我终于解决了这个问题:

我重新安装了 xampp 和 postgres 但使用了 postgres 32 位版本(64 位版本也应该可以工作,但我想确保)

然后我再次启用了扩展php.ini

extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pgsql.dll

我得到了文件没有被再次找到的错误(php_error_log)。

读完后:

http://postgresql.1045698.n5.nabble.com/pgAgent-installation-fails-LIBPQ-DLL-is-missing-PostgreSQL-9-0-2-x64-2008-Windows-Server-x64-td3351434.html

libpq.dll从 postgres 8.4 下载并将其复制到 apache/bin 和 postgres/lib 中(从那里替换了 dll)。

在我的 Path-Variable 中仍然有C:\xampp\php\ext\,但它也应该在没有那部分的情况下工作。

我在这个问题上工作了 3 天,我希望它能帮助其他人更快地启动和运行。

于 2013-06-24T08:53:16.800 回答
6

另一个解决方案是复制

c:/xampp/php/libpq.dll

c:/xampp/apache/bin/

资源

于 2014-02-12T19:58:31.200 回答