【发布时间】:2013-09-25 10:09:30
【问题描述】:
我正在尝试让 PHP 加载一些扩展(PHP PDO 的 sqlsrv 驱动程序)。 我正在使用 wamp 服务器,使用 PHP 5.4,Apache 2.4.4。
在我的 PHP.ini 文件中,我输入了以下行:
extension_dir = C:\wamp\bin\php\php5.4.16\ext
...
extension=php_pdo_sqlsrv_54.nts.dll
但是在 apache 错误日志中,每当我重新启动 apache 服务时,我都会收到错误消息:
PHP Warning: PHP Startup: Unable to load dynamic library 'c:/wamp/bin/php/php5.4.16/ext/php_pdo_sqlsrv_54_nts.dll' - The specified module could not be found.\r\n in Unknown on line 0
现在,我知道一个事实,这个错误是不正确的。如果我直接从错误日志中复制文件位置 (C:\wamp\bin\php\php5.4.16\ext\php_pdo_sqlsrv_54_nts.dll) 并将其粘贴到 Windows 资源管理器中,它会发现文件正常。
我已经将 ext 目录添加到 windows PATH 环境变量中,仍然没有成功。
有什么想法可以尝试下一步吗? 谢谢
【问题讨论】:
-
当您右键单击启动中的 wamp 图标并导航到 PHP, Extension 时会看到什么?你能在带有勾号的扩展中看到 php_pdo 吗?
-
你查看过你的 phpinfo() 以确认它使用了正确的 php 以确保你只安装了一个 php
-
@VineeshPoduval 扩展已打勾,但仍然出现相同的“无法加载动态库”错误:(
-
@LiamSorsby 我已经仔细检查了加载的ini文件,这也是正确的,还有注册的extension_dir。我已经将所有正确的 .dll 文件添加到 extension_dir 目录,并安装了 SQL 本机驱动程序,但仍然没有运气
-
@PhilCross 这看起来像 Apache 找不到 dll 文件(在 php 目录中)。解决方案是将“C:\wamp\bin\php\php5.4.16”(或类似目录)添加到系统 PATH 中。另一种解决方案是将您的 dll 文件复制到 apache 的 bin 目录中。第三种选择是将 dll 文件复制到您的 windows 系统目录(system32 或 64)。还请验证您通过了所有系统要求,这里提到了technet.microsoft.com/en-us/library/cc296170(v=sql.105).aspx。