同じPHPのスクリプトなのに、環境違いで、DB:SQLServerへの接続状況に違いがある

実現したいこと

Apache2.4.41 / PHP8.3.9 の組み合わせで動作する環境が 当方の手もとに 2つ あります。
Windows10端末 2台で、検証端末1と検証端末2みたいな位置づけです。(サーバ運用中のPHPのVerUpに備えて、移行リハを実施している感じ)

厄介なことに、同じWebページ(.php)のファイルが DB接続に関し 挙動に違いが生じています。

【実現したいこと】
この2台で 同じPHPのスクリプトを実行した場合は 当然同一の挙動を達成したい。

発生している問題・分からないこと

検証機の1台目は SQLServerに無事接続して 関連テーブルからデータを取得して ページに表示できるが 検証機の2台目では 以下エラーがPHPのログファイルに出力され、SQLServerへの接続に失敗する。

しつこいですが 同じWebページ=同じPHPのスクリプトの実行状況に差があります!

エラーメッセージ

error

1[08-Jul-2024 16:02:31 Asia/Tokyo] PHP Fatal error: Uncaught PDOException: SQLSTATE[08001]: [Microsoft][ODBC Driver 18 for SQL Server]SSL プロバイダー: 信頼されていない機関によって証明書チェーンが発行されました。 2 in C:\Apache24\htdocs\MSSQLSelect.php:33

該当のソースコード

PHP

1<?php2 //PDOオブジェクトの生成3 $serverName = 'XX.XX.XX.X';4 $database = 'XXXX';5 $uid = 'XXXXXXXX';6 $pwd = 'XXXX';7 $conn = new PDO( "sqlsrv:server=$serverName;Database = $database", $uid, $pwd);

試したこと・調べたこと

上記の詳細・結果

こちらの記事
では SQLServerへの接続方法自体を 変更する手立てが紹介されています。
確かに 修正すれば 双方の環境で 無事SQLServerへ接続できるようになるのかもしれませんが、環境違いで 同じプログラムで挙動が違う状況が どうしても気になってしまいます。(修正に躊躇する)

補足

SQLServerとのやりとりを行うため 双方の環境に
Microsoft ODBC Driver 18 for SQL Server なる ドライバをインストール済です。

同じインストーラを活用して セットアップしている認識です。イメージ説明

双方のWindows10端末は 同じドメイン・セグメント上の端末で、同じhostsファイルが 配置されている状況を 確認済です。

皆様のご見解 お待ち申し上げております。

コメントを投稿

0 コメント