这是一个项目,因此不需要极高的谨慎/安全性 - 我想让它工作,然后从那里改进它。
如何让 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 - 我不知道如何从中粘贴信息,但它的输出似乎没有任何问题。