gpt4 book ai didi

php - 使用 PHP_SQLSRV 在 IIS8 上连接到 SQL Server 2012

转载 作者:搜寻专家 更新时间:2023-10-31 21:12:39 24 4
gpt4 key购买 nike

这是一个项目,因此不需要极端的谨慎/安全级别 - 我想让它正常工作,然后从那里改进它。

如何让PHP成功连接到SQL Server 2012

我成功完成的事情:

  • 在 SQL Server 2012 上启用混合身份验证
  • 使用 SQL 身份验证建立帐户
  • 在IIS上设置FastCGI并配置PHP.ini
  • .web根目录下的PHP脚本执行成功
  • 我可以使用 SSMS 使用我创建的凭据(SQL 身份验证)在本地连接到 SQL 数据库

问题:

  • 我无法使用 PHP 脚本成功连接到本地 SQL 数据库。

我已经考虑过,但理解得不够好,无法诊断:

  • 与 IIS 的 HTTP 连接正在模拟 IUSR,后者有权在 Web 根目录中读取/执行 PHP 脚本,但可能无权连接到服务器?
  • 由于某种原因,我的连接对话根本无效

这是我的连接脚本:

$serverName = 'localhost';
$connectionInfo = array( 'Database'=>'DATABASE',
'Encrypt'=>'1', 'UID'=>'user', 'PWD'=>'password' );

$connection = sqlsrv_connect($serverName, $connectionInfo);

if( $connection == false )
{
echo "No connection was established.\n";
die( print_r( sqlsrv_errors(), true));
}

这是我的错误(不幸的是 PHP 不能很好地打印它们):

No connection was established. Array (
[0] => Array (
[SQLSTATE] => 08001
[code] => -2146893019
[message] => [Microsoft][SQL Server Native Client 11.0]SSL Provider: The certificate chain was issued by an authority that is not trusted.
)
[1] => Array (
[SQLSTATE] => 08001
[code] => -2146893019
[message] => [Microsoft][SQL Server Native Client 11.0]Client unable to establish connection
)
)

当我通过浏览器加载脚本时,我也尝试使用进程监视器来检查 w3wp.exe - 我不知道如何从中粘贴信息,但它的输出似乎没有任何问题.

最佳答案

错误消息很简单:您在 SQL Server 上使用的 SSL 证书是自签名的,因此不受消费者信任。

可能的解决方案包括:

  • 在您的 SQL Server 上禁用 SSL/TLS
  • 使用不安全的连接到您的 SQL Server
  • 将自签名证书添加到消费者的可信证书库
  • 从公共(public) CA 获得受信任的证书(Namecheap 只需不到 20 美元)

关于php - 使用 PHP_SQLSRV 在 IIS8 上连接到 SQL Server 2012,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15831605/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com