【问题标题】:Cannot find php_sqlsrv extension - 5.3, threadsafe找不到 php_sqlsrv 扩展 - 5.3,线程安全
【发布时间】:2012-07-27 20:15:11
【问题描述】:

我已经按照这个问题的答案来信:

Connection between MSSQL and PHP 5.3.5 on IIS is not working

我正在使用带有线程安全 5.3 的 XAMPP。我已将文件复制到扩展目录(同时将它们留在 /php 文件夹中)并添加了扩展行:

extension=php_sqlsrv_53_ts.dll
extension=php_pdo_sqlsrv_53_ts.dll

当我这样做时,Apache 无法启动,在 eventvwr 中出现错误,例如:

Application popup: Warning : PHP Startup: Unable to load dynamic library
'C:\xampp\php\ext\php_sqlsrv_53_ts.dll' 
- The specified module could not be found.

显然,该文件确实存在于该位置,并且 php.ini 指向该扩展目录。

有什么问题?

【问题讨论】:

  • 无法加载也意味着无法访问。确保任何 UID php 运行在该文件上都具有访问权限。
  • 刚刚检查过。相关文件与目录中其他扩展具有相同的权限。
  • 库是否使用相同的编译器编译?如果你检查 phpinfo();您应该能够看到用于 PHP 的编译器。
  • 我刚刚从 Microsoft 下载了这些库。那会有什么不同呢?我不能以不同的方式编译它们,对吧?
  • 这不一定有帮助,但我对不同的 .dll 有完全相同的问题:stackoverflow.com/questions/11693859/…

标签: php apache xampp


【解决方案1】:

当您正在加载的共享库依赖项丢失时,Windows 会报告此问题。使用depends.exe查看php_sqlsrv_53_ts.dll的依赖关系,并确保它之前已加载或在共享库搜索路径中。

http://www.dependencywalker.com/

【讨论】:

  • FYI:: 我对我的 ext/php_ibm_db2 运行了这个,它提出了大约 50 个依赖项。 /ext 文件夹中几乎没有这些依赖项。这让我想知道这个工具有多准确,或者我是否没有正确理解它的使用。
  • 这似乎没有帮助(当我针对相关文件运行它时实际上崩溃了),但感谢您的回答。 (#mtgpro4L,顺便说一句)
【解决方案2】:

见下面的网址

php_sqlsrv.dll: gives error when checking PHP version but extension works

阅读:-

自 PHP 5.3 起,微软有一个新的 windows 驱动程序:

http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx

也许你可以试试这个版本,它似乎是最近的 (06/2011)

希望有帮助!

【讨论】:

    【解决方案3】:

    遗憾的是,没有一个答案能解决这个问题,也没有我已经探索过的途径。

    我决定使用带有 SQL Server 连接字符串的 ODBC 驱动程序,这似乎工作正常,但我不能使用 MSSQL 和 SQLSRV 本机函数。

    【讨论】:

      【解决方案4】:

      我写了一个页面,在安装 SQLSRV 驱动程序时可能会有所帮助: http://robsphp.blogspot.co.uk/2012/09/how-to-install-microsofts-sql-server.html

      不幸的是,当 MSFT 删除旧版 XP/2003 驱动程序(2.0 版)的下载时,说明变得很复杂,因此请在开始之前阅读整个页面。

      【讨论】:

      • 谢谢,如果需要,我会查看您的回答。我切换到 Linux/FreeTDS 设置。
      【解决方案5】:

      错误的技术,但我在让 WAMP 连接到 MSSQL 时遇到了问题,并且出现了相同类型的错误。

      我通过安装 32 位版本的 WAMP(而不是 64,即使我们在 64 位系统上)解决了这个问题。

      即使这不适用于 OP,我希望有人觉得这有帮助!

      【讨论】:

      • 对这个问题没有帮助,但是感谢添加它!
      • @Kyle - 请注意确保您所有的东西(尤其是 xampp)都是 32 位的,因为这导致了我们的错误。祝你找到答案好运!
      【解决方案6】:

      在安装后启动 Drupal 7 堆栈时,我收到了相同的错误消息。我正在使用带有 Win 7 x64 和 acquia-drupal-win-7.31.36-6159.54300 的 VM Ware。

      我访问了 PHP 站点 http://php.net/manual/en/sqlsrv.requirements.php 并安装了 x64 包。 脚步 1) 停止 Drupal 堆栈 2)运行文件:sqlncli.msi 3)重启Drupal,没有错误信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-28
        • 2011-08-20
        相关资源
        最近更新 更多