在windows / xampp下使用带有php的postgresql

时间:2013-06-22 14:33:33

标签: php windows postgresql

我正在尝试将postgres与PHP一起使用,但Apache无法加载扩展名。

我正在使用:

带有xampp的Windows 7(64位),我有php版本5.4.7 我已经设置了postgres,其他应用程序可以访问数据库。

当我在php.ini

中取消注释以下行时
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll

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

  

[2013年6月22日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都无法启动了。所以我删除了这条线。

我还尝试将这两条路径添加到我的PATH变量:

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

现在错误已更改为

  

在第0行的未知中

一切都在同一台本地机器上运行。使用Linux / seperate服务器不是另一种选择。

我的phpinfo()没有显示任何与postgres相关的内容。

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

2 个答案:

答案 0 :(得分:13)

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

我重新安装了xampp和postgres但是使用了postgres 32bit-version(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

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

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

我在这个问题上工作了3天,我希望它能帮助其他人更快地完成这项工作。

答案 1 :(得分:5)

另一种解决方案是复制

c:/xampp/php/libpq.dll

c:/xampp/apache/bin/

Source