これはプロジェクトなので、極端なレベルの注意やセキュリティは必要ありません。動作させてから改善したいと考えています。
PHP を SQL Server 2012 に正常に接続するにはどうすればよいですか
私が成功したこと:
- SQL Server 2012 で混合認証を有効にしました
- SQL 認証を使用してアカウントを確立しました
- IIS で FastCGI をセットアップし、PHP.ini を構成する
- Web ルートの .PHP スクリプトは正常に実行されます
- SSMS を使用して、作成した資格情報 (SQL 認証) を使用してローカルで SQL データベースに接続できます。
問題:
- PHP スクリプトを使用してローカル SQL データベースに正常に接続できません。
私が考慮したこと、しかし診断するのに十分に理解していないこと:
- IIS への HTTP 接続は、Web ルートで PHP スクリプトを読み取り/実行する権限を持っているが、サーバーに接続する権限を持っていない可能性がある IUSR を偽装していますか?
- 何らかの理由で、私の接続ダイアログが単に効果がないこと
ここに私の接続スクリプトがあります:
$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 をチェックしようとしました。そこから情報を貼り付ける方法はわかりませんが、出力に問題はないようです。