【问题标题】:PHP loading extensions errorPHP加载扩展错误
【发布时间】: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

标签: php apache wamp


【解决方案1】:

您的问题是您尝试使用“线程安全”的 PHP 运行 NTS“非线程安全”dll,因此首先尝试下载 sqlsrv DLL 的线程安全版本。

大注意,可能是您的下一个问题解决方案:

据我所知,sqlserver 数据库接口 dll 仅提供 32 位版本。因此,如果您安装了 64 位 WAMPServer,则必须卸载并安装 32 位 WAMPServer。

【讨论】:

  • 抱歉迟到了!我已经安装了 64 位 wampserver,但发现 sqlsrv 驱动程序只有 32 位(很烦人!!)。我暂时搁置了,等有耐心再试试!
猜你喜欢
  • 2016-11-10
  • 1970-01-01
  • 1970-01-01
  • 2011-03-02
  • 1970-01-01
  • 1970-01-01
  • 2012-06-02
  • 1970-01-01
  • 2016-07-28
相关资源
最近更新 更多