XAMPP + PostgreSQL = 错误

Posted

技术标签:

【中文标题】XAMPP + PostgreSQL = 错误【英文标题】:XAMPP + PostgreSQL = Errors 【发布时间】:2012-11-04 06:36:01 【问题描述】:

我在一台 Windows 7 机器上安装了 XAMPP 和 PostgreSQL。

我很好地配置了 apache httpd.conf 和 php.ini 文件,它们可以正常工作。 我取消注释 php.ini 文件中的“扩展 php_pgsql.dll”行,并将 \php、\php\ext 以及 PostgreSQL \bin 和 \lib 目录添加到我的 PATH 变量中。

C:\Program Files\PostgreSQL\9.2\lib;C:\Program Files\PostgreSQL\9.2\bin;C:\xampp\php\ext;C:\Program Files (x86)\PostgreSQL\EnterpriseDB-ApachePHP\php;C:\xampp\php;

我下载了windows兼容的php_pgsql.dll文件,复制到\php\ext

当我尝试启动 apache 服务器时,出现两个错误:

“无法在动态链接库php5ts.dll中定位程序入口点_regexec@20。”

“PHP 启动:无法加载动态库 'C:\xampp\php\ext\php_pgsql.dll' - 找不到指定的过程。”

所以,这些错误显然不是致命的,这意味着服务器会继续启动并完成启动。 另外,如果我注释掉 php.ini 中的“扩展 php_pgsql.dll”行,错误就会消失。 以下是来自 PHP 和 apache 的相关错误日志:

阿帕奇:

[Thu Nov 15 10:48:11.763770 2012] [mpm_winnt:notice] [pid 5420:tid 320] AH00455: Apache/2.4.3 (Win32) OpenSSL/1.0.1c PHP/5.4.7 configured -- resuming normal operations
[Thu Nov 15 10:48:11.763770 2012] [mpm_winnt:notice] [pid 5420:tid 320] AH00456: Server built: Aug 18 2012 12:41:37
[Thu Nov 15 10:48:11.763770 2012] [core:notice] [pid 5420:tid 320] AH00094: Command line: 'c:\\xampp\\apache\\bin\\httpd.exe -d C:/xampp/apache'
[Thu Nov 15 10:48:11.764770 2012] [mpm_winnt:notice] [pid 5420:tid 320] AH00418: Parent: Created child process 5728
[Thu Nov 15 10:48:13.489869 2012] [ssl:warn] [pid 5728:tid 328] AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]
[Thu Nov 15 10:48:16.520042 2012] [mpm_winnt:notice] [pid 5728:tid 328] AH00354: Child: Starting 150 worker threads.

PHP:

[15-Nov-2012 15:48:11 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_pgsql.dll' - The specified procedure could not be found.

 in Unknown on line 0

[15-Nov-2012 15:48:16 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_pgsql.dll' - The specified procedure could not be found.

 in Unknown on line 0

我想进行此设置,以便为 PostgeSQL 数据库编写 PHP 接口。这只是为了好玩,而不是在专业背景下。

【问题讨论】:

您是否获得了基于 windows 的 php 的 postgres 模块(例如 php_pgsql.dll)? 是的,我下载了它并将它放到了 php\etc 目录中——这修复了我之前遇到的“不是有效的 win32 应用程序”错误。 【参考方案1】:

试试this,我遇到了Windows 7 (64bit)这个问题,我把libpq.dll的完整路径从PostgreSQL服务器安装路径添加到httpd.conf,问题就解决了。

【讨论】:

以上是关于XAMPP + PostgreSQL = 错误的主要内容,如果未能解决你的问题,请参考以下文章

XAMPP 与 PostgreSQL 9

如何在 XAMPP 中捆绑的 PHP 中添加 PostgreSQL 支持?

从 PostgreSQL 中的字段中提取数字

PostgreSQL

PostgreSQL 查询耗时过长

PostgreSQL 删除视图(如果存在)