【问题标题】:PGSQL not loaded in PHP 5.3 Windows under IISPGSQL 未在 IIS 下的 PHP 5.3 Windows 中加载
【发布时间】:2013-10-08 22:08:30
【问题描述】:

我知道还有其他关于 PGSQL 未加载问题的问题,但我还没有找到适合我的解决方案并直接解决 Windows 下的 IIS 设置(显然)。使用 PostgreSQL 8.4。

由于我是 PHP 的完全新手(只是试图让 MantisBT 运行),我发现这非常难以调试/研究。

我已经设置了 PostgreSQL bin 文件夹和 PHP 文件夹的路径(首先是 v5.3 子文件夹,然后是 PHP 根目录)。我检查了所有这三个文件夹中是否存在 libpq.dll,并且我尝试将 libpq.dll 从 PostgreSQL 文件夹复制到两个 PHP 文件夹。我已经确定 php.ini 包含

extension=php_pdo_pgsql.dll
extension=php_pgsql.dll

在两个 PHP 文件夹中(root 和 v5.3)。

还有什么要检查/尝试/检查的?

【问题讨论】:

  • (1) 为什么选择旧版本的PostgreSQL? (2) 是否安装成功并运行 - 你可以从 psql/pg_admin(?) 连接
  • (事件)日志中有任何内容吗? stackoverflow.com/questions/551734/…
  • @Richard:我一年多前安装了 PostgreSQL,我想我抓住了当时最新的东西。然后我被其他工作淹没了,直到现在才开始看它。 PostgreSQL 似乎正在工作——我可以使用我为 MantisBT 配置的用户名和密码与 pgadmin 连接到服务器和 MantisBT 数据库。但很明显,它在 core.php (或其他)中初始化数据库连接的调用失败。
  • @Milen:好像日志文件没有被刷新(C:\Windows\Temp\php53_errors.log)。如何冲洗它?
  • @Milan:好的,现在我至少可以看到今天早些时候我的试验之后的日志条目。该日志仅包含关于 zlib 的警告:ini_set(): Cannot change zlib.output_compression - headers already sent in C:\DataDIA\wwwroot\MantisBT\core\compress_api.php on line 68. 没有关于 pgsql。

标签: php postgresql iis libpqxx


【解决方案1】:

再次尝试phpinfo(),它报告了

Loaded Configuration File = C:\Program Files (x86)\PHP\v5.3\php.ini

这是正确的并且包含extension=php_pdo_pgsql.dllextension=php_pgsql.dll。至于“dll 位于正确的位置”(@Richard),我无法确定确切需要哪些 dll:s 以及它们应该位于何处,但我在 C:\Program Files (x86)\PHP\v5.3\ext\php_pdo_pgsql.dll(版本 5.3. 12.0) 和php_pgsql.dll (版本 5.3.12.0)。

我读到了对 libpq.dll 的依赖,这存在于 C:\Program Files (x86)\PHP\v5.3\ 中。在我“调试”的早期,我将新的libpq.dll(版本 8.4.4.10133)从 PostgreSQL 复制到该文件夹​​,并在某处读到它可能会解决问题。我现在尝试恢复到 PHP 附带的旧版本(8.3.6.9034),瞧!!!!突然phpinfo() 说它已经加载了 pdo 和非 pdo pgsql 模块。

MantisBT 现在至少会加载登录屏幕。呼!

【讨论】:

  • 我不太确定为什么它一开始就不起作用,但我怀疑它本质上是一个路径问题。我在添加 PostgreSQL 文件夹和 PHP 的 v5.3 子文件夹的路径之前升级了 libpq.dll,我认为这是我所做的唯一更改,我现在还没有撤消。
猜你喜欢
  • 2012-08-24
  • 2018-01-22
  • 1970-01-01
  • 1970-01-01
  • 2012-11-06
  • 1970-01-01
  • 2012-08-31
  • 1970-01-01
  • 2011-06-05
相关资源
最近更新 更多