【发布时间】:2023-03-09 02:58:01
【问题描述】:
我无法从在 IIS 下运行的 PHP v7.1.7 网站连接到 SQL Server 2008 R2。
基本 PHP 页面显示正常 - 但与 sql server 工作无关。 所以基本的IIS站点和PHP的使用都可以。
我已经下载了 SQL Server 驱动并在 php.ini 文件中配置了它们
我知道 php 7.1 驱动程序与其他 php 版本不同。
扩展目录 (ext) 添加了以下 DLL: php_pdo_sqlsrv_71_nts.dll php_sqlsrv_71_nts.dll
"C:\Program Files\PHP\v7.1\php.ini" has following extensions added:
[ExtensionList]
extension=php_sqlsrv_7_nts.dll
extension=php_pdo_sqlsrv_7_nts.dll
IIS 中的 PHP 管理器显示这些扩展已启用。
在调试时,我注意到在错误文件中加载这些驱动程序存在一个基本问题 PHP71x64_errors.log
即 [13-Mar-2018 00:51:27 UTC] PHP 警告:PHP 启动:无法加载动态库 'C:\Program Files\PHP\v7.1\ext\php_sqlsrv_7_nts.dll' - 指定的模块不能成立。 在第 0 行的未知中 [13-Mar-2018 00:51:27 UTC] PHP 警告:PHP 启动:无法加载动态库 'C:\Program Files\PHP\v7.1\ext\php_pdo_sqlsrv_7_nts.dll' - 指定的模块不能成立。 在第 0 行的未知中
这些文件确实存在于这些位置,我授予每个人完全访问权限 - 包括 IUSR,该网站使用的 iis 应用程序池的默认用户。
现在聊天网站上充斥着这个问题——似乎没有人给出明确的答案。大多数博客都指向另一组 sql server 驱动程序尝试,但它不起作用。
我的问题是:
1) SQL Server 驱动程序的线程安全 (ts) 或非线程安全 (nts) 版本应该在 win 10 上与 IIS 一起使用吗? 2) 我假设 win 10 是 64 位 - 应该使用 64 位版本的驱动程序而不是 x86 版本 - 有人可以确认吗? 3) 任何人都可以向我指出一个确定的 SQL Server 2008 R2 驱动程序下载,它可以保证与我的 win 10 和 IIS v10.0.16299.15 安装一起使用?
注意:我已经下载了 wp-db-abstraction 必须使用 SQL Server 的 PHP 插件并安装到 mu-plugins 目录中。
【问题讨论】:
标签: c# php sql-server windows iis