在 Windows 7 上安装 Postgres for PHP(64 位)

Posted

技术标签:

【中文标题】在 Windows 7 上安装 Postgres for PHP(64 位)【英文标题】:Install Postgres for PHP on Windows 7 (64 bits) 【发布时间】:2011-09-17 18:00:06 【问题描述】:

我正确安装了 PostgreSQL 并且运行正常,因为我可以通过管理工具访问数据库。

我正在尝试配置 php 5.2.13 以加载 postgres 扩展,但到目前为止失败了,我在 PHP 错误日志或 Apache 错误日志中没有得到任何信息。到目前为止,我已经完成了:

在 windows 路径中包含 PostgreSQL bin 将 php_pgsql.dll 从我的 php/ext 文件夹复制到 system32 文件夹(也可以尝试系统路径中的其他文件夹) 在 php.ini 和/或 LoadFile "C:/Program Files/ 中包含 extension=php_pgsql.dllhttpd.conf中的PostgreSQL/9.0/bin/libpq.dll",无论是一起还是分开,所有的组合导致Apache无法重新启动没有任何记录消息。

我从 php.net 关注 these instructions 和其他人,但失败了。

有什么想法或帮助吗?

谢谢

【问题讨论】:

您不必(也不能)在 Apache 中加载任何 pgsql dll。 写下错误消息可能很有用。并查看相关问题(本页右侧面板)。 ***.com/questions/551734/… Milen,我已经读过,但不太明白,如果我下载 PostrgreSQL 的压缩版本,我看到的只是:comerr64.dll、gssapi64.dll、k5sprt64.dll , krb5_64.dll, libeay32.dll, pgenlist.dll, pgenlista.dll, pgxalib.dll, psqlodbc30a.dll, psqlodbc35w.dll, ssleay32.dll 没有 php_nothing.dll php_pgsql.dll 是一个 PHP 扩展,它是用于 Windows 的 PHP 包的一部分。但它需要其他 DLL(您列出的那些)才能正常运行。此外,好主意引用您收到的错误或什么不起作用以及何时。 【参考方案1】:

php_pgsql.dll 必须位于 PHP 安装的 ext 文件夹中。 将文件放在那里并在 php.ini 中启用(按照您的方式)后,您必须重新启动 Web 服务器。之后你必须在你的 phpinfo() 中看到 PostreSQL 扩展

【讨论】:

我正在这样做,在路径中包含 php/ext(以防万一),但是当我尝试在 php.ini 中加载扩展名时,我无法启动 apache,我有所有消息这是在 apache error.log 中吗: [2011 年 6 月 18 日星期六 13:44:48] [警告] pid 文件 C:/Program Files (x86)/Apache Software Foundation/Apache2.2/logs/httpd.pid 被覆盖——不干净关闭以前的 Apache 运行? 我认为 apache 不需要加载 pg 库。尝试恢复 httpd.conf 并仅在 php 中启用 pg 扩展。此外,在 php.ini 中将 display_stratup_errors 设置为 1,以便在 php 尝试加载扩展时查看任何错误。 我只是在加载php扩展,httpd.conf是原始状态,但仍然没有启动apache。感谢您的帮助 我认为您的 apache 配置有问题,但请尝试禁用 php.ini 中的扩展,以查看 apache 是否会运行。顺便说一句,如果您将其用作开发机器,您可能对安装 wamp 感兴趣 - 在那里启用和禁用扩展非常容易(它是 apache、mysql 和 php 的预配置包,带有控制面板管理您的配置)【参考方案2】:

从 PostgreSQL 9.3 及更高版本开始,Apache 将不会从 PostgreSQL 提供的 libpq.dll 开始。而是在 Apache 的 httpd.conf 文件中设置 PHP 目录的 libpq.dll 的路径。在我的情况下是:

LoadFile "D:/PHP5.6.3/libpq.dll"

【讨论】:

【参考方案3】:

除了上述步骤之外,尝试在 Wampserver 中设置 PHP 扩展,方法是左键单击 Wampserver(绿色)图标 -> PHP -> PHP Extensions -> 单击列表中这些扩展旁边的旁边(以检查):

pdo_pgsql pgsql

这是我的设置:

    Windows 10, Wampserver 3.1.9 (x64) 包含: Apache 2.4.39, PHP 7.3.7, MySQL 5.7.24 PostgreSQL 11

【讨论】:

以上是关于在 Windows 7 上安装 Postgres for PHP(64 位)的主要内容,如果未能解决你的问题,请参考以下文章

Linux(CentOS 7)下安装postgres

Postgres 恒定 30% 的 CPU 使用率

如何在Debian 8/7上安装PostgreSQL 9.6

无法在 MACOS mojave 上运行来自 python 2.7 的 postgres 请求

忘记 Postgres 上的管理员密码(Windows 安装),无法重置

以windows服务方式快速部署免安装版Postgres数据库