すみません。PHPからMSSQLサーバーに接続できずに困っています。
ブラウザを経由するとCentos上のPHPからWindowsのSQLサーバーに接続できない状態です。
コマンドラインからPHPを実行した場合は接続できるのですが、
同じPHPファイルにブラウザからアクセスした場合はなぜか接続エラーになってしまいます。
なぜブラウザからだと接続エラーになってしまうのか原因が分かる方はいらっしゃいますでしょうか?
または同じ症状になったことがある方はいらっしゃいますか?
PHPとfreeTDSは以下の様な記述になっています。
■PHPの記述
$link = mssql_connect('MSSQL', 'ユーザー名', 'パスワード');
■freeTDSの記述
[MSSQL]
host = 192.168.0.1
port = 1433
tds version = 8.0
charset = UTF-8
client charset = UTF-8
language = japanese
■phpinfoのmssqlの情報
mssql
MSSQL Support enabled
Active Persistent Links 0
Active Links 0
Library version FreeTDS
Directive Local Value Master Value
mssql.allow_persistent On On
mssql.batchsize 0 0
mssql.charset no value no value
mssql.compatability_mode Off Off
mssql.connect_timeout 5 5
mssql.datetimeconvert On On
mssql.max_links Unlimited Unlimited
mssql.max_persistent Unlimited Unlimited
mssql.max_procs Unlimited Unlimited
mssql.min_error_severity 10 10
mssql.min_message_severity 10 10
mssql.secure_connection Off Off
mssql.textlimit Server default Server default
mssql.textsize Server default Server default
mssql.timeout 60 60
よろしくお願いいたします。
お礼
返事が遅くなりもうしわけございません。 回答ありがとうございます。 エラーログを調べた所以下のようなエラーになっていました。 mssql_connect(): Unable to connect to server: PHPは実行できていたのですがApacheを経由するとmssql_connectのところでエラーになってしまい原因がわからずハマってしまいました。 その後解決策が見つかりましたのでご報告いたします。 CentOSのセキュリティポリシーが原因だったようで、 以下のコマンドを実行してEnforcingからPermissiveに変更したところ無事接続できるようになりました。 /usr/sbin/setenforce Permissive アドバイスありがとうございました。 またよろしくお願いいたします。