PHP 5.2.8 拒绝加载 php_pgsql.dll
,并显示以下错误信息:
警告:PHP启动时出现问题:无法加载动态链接库'D:\PHP\ext\php_pgsql.dll' - 指定的模块无法找到。
位于未知行0
.dll 文件位于 PHP/ext/ 目录下。
之前在 Windows 上遇到过 PHP 的这个问题的人有吗?
PHP 5.2.8 拒绝加载 php_pgsql.dll
,并显示以下错误信息:
警告:PHP启动时出现问题:无法加载动态链接库'D:\PHP\ext\php_pgsql.dll' - 指定的模块无法找到。
位于未知行0
.dll 文件位于 PHP/ext/ 目录下。
之前在 Windows 上遇到过 PHP 的这个问题的人有吗?
查看PHP PostgreSQL安装页面上的信息:http://us.php.net/manual/en/pgsql.installation.php
在配置了Apache的Windows服务器上,通过将以下行添加到httpd.conf以加载libpq.dll可以节省大量时间:
LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"
请注意,您需要根据安装路径和已安装的PostgreSQL版本相应更改文件夹。此外,请注意,在生产环境中在同一台服务器上运行Apache和PostgreSQL并不推荐。
这立即解决了我的设置问题。
libpq.dll
并放入apache/bin
文件夹中。 - coding_idiot我也遇到了PHP 5.4.1的这个问题。
将有问题的DLL文件复制到各处并不能解决问题。而且我在服务器上没有安装PostgreSQL,但我计划使用PHP与不同版本的Postgres一起使用,所以唯一行之有效的解决方法是在httpd.conf文件中添加以下内容:
LoadFile "C:/Program Files/PostgreSQL/8.4/bin/libpq.dll"
就像这样引用与PHP捆绑在一起的libpq.dll:
LoadFile "C:/php/libpq.dll"
之后对我来说运行良好。
对于那些希望让他们的PHP安装只能访问PostGres服务器而不实际安装PostGres的人,您需要:
这3个DLL可以在PostGres安装包中找到。我将它们复制到apache\bin中,这样我就能保持一切都是自包含的。这样做,apache就可以很好地启动PHP引擎,并支持PostGres。
您需要将libpq.dll从wamp\bin\php\php5.3.5复制到wamp\bin\apache\Apache2.2.17\bin。然后重新启动Wamp服务器。现在我们已经完成了php配置。接下来,我们将安装phpPgAdmin并使用它。
另一个重要因素是,Apache(如果你使用的是Apache)有自己一套OpenSSL DLLs,你需要将其替换或改名,以免与Postgres发行版中的DLLs发生冲突。
我只想分享一下我的经验,不需要涉及 libpq.dll
。我在 php.ini 文件中取消了 extension=php_pdo_pgsql.dll
和 extension=php_pgsql.dll
的注释。首先,apache 拒绝启动。
然后,我将 "C:\Program Files (x86)\PostgreSQL\9.4\bin\"
(根据你的安装情况而定)添加到 Windows 环境 PATH 中,成功启动了 apache 并运行正常。
一个想法--确保Postgres二进制文件在系统路径中,而不是您特定的用户路径。恰好在我的机器上,这就是问题所在。 :-)
编辑:
想一想,这就解释了为什么Dependency Walker会报告一切正常,但问题仍然存在--您在自己的帐户下运行DW,而Apache作为SYSTEM运行,因此不会有您个人的PATH设置。
LoadFile "C:/wamp/bin/php/php5.4.12/libpq.dll"
除了取消注释php.ini
文件中所需的行之外,将上述行添加到httpd.conf
文件中也解决了我的问题。
针对WAMP服务器设置,您需要将libpg.dll文件复制到“C:\wamp\bin\apache\Apache2.2.21\bin\"或类似目录中。仅将其复制到..\php\ext\并调整PATH环境变量是不够的(如果有效的话)。
原始答案来源:http://www.wampserver.com/phorum/read.php?2,40270,57932
针对XAMPP设置,我发现我只需要将libpg.dll文件复制到..\php\ext\目录中即可。