- - PR -
PHPでMS SQL Server2000へ接続
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2007-07-31 10:28
PHPのプログラムからMS SQL Server2000へ「名前付きパイプ」で接続したいと考えています。
mssql_conncet()関数を使って、 $conn = mssql_connect("<サーバー名>", "<ユーザー名>", "<パスワード>"); とすると、 Warning: mssql_connect() [function.mssql-connect]: Unable to connect to server: <サーバー名> in C:\...\con.php on line ** というエラーメッセージが出てきて接続できません。 おそらく「TCP/IP」接続になっているので、サーバー側からはじかれているのだと思います。 コントロールパネルのODBCの設定でネットワークライブラリを「名前付きパイプ」に設定して、odbc_connect()を使っても接続に失敗します。 クライアント側の環境は以下の以下の通りです ------------------------------------- Windows2000 SP4 PHP 4.4.7 apache 2.0.59 ------------------------------------- 上記環境のPHPプログラムから、別のPCのMS SQL Server2000へ接続する形になります。 SQL Server2000の設定が「名前付きパイプ」しか許可されておらず、 自分が管理者ではないのでなんとか名前付きパイプで接続したいのです。 どなたか良い方法をご存知の方はおられないでしょうか? 自分でも色々と調べているのですが今のところ解決策がでてきません。 ご指導よろしくお願い致します。 ちなみにADO.NETのSqlConnectionクラスで接続文字列を、 "server=<サーバー名>; database=<DB名>; Persist Security Info=true; USER ID=<ユーザー名>; Password=<パスワード>" のようにすると接続できます。 [ メッセージ編集済み 編集者: ひろ 編集日時 2007-07-31 10:32 ] [ メッセージ編集済み 編集者: ひろ 編集日時 2007-07-31 10:33 ] | ||||
|
投稿日時: 2007-08-02 14:21
自己レスです。
どうやら検討違いのことを聞いてしまっていたようです。 TCP、名前付きパイプ云々の話ではなくてPHPの実行ユーザーにあったようです。 PHPをapacheのモジュールとして動作させている場合実行ユーザーはapacheのものとなり、 これが現在Windowsにログインしているアカウント(ユーザー)と違うからサーバー側に はじかれるという考えに至りました。(あくまで推測ですが) apacheのデフォルトの実行ユーザーが何であり、どのようにすればWindowsのユーザーに変更することができるのかを現在調べています。 どなたかヒントになるようなことを教えて頂けたら幸いです。 httpd.confの記述で簡単に変更できると良いのですが・・・ | ||||
|
投稿日時: 2007-08-02 14:49
サービスでApache2のログオンを確認すればいいと思います。多分defaultだとローカルシステムアカウントだったかと。 | ||||
|
投稿日時: 2007-08-03 17:21
返答ありがとうございます。
サービスのApache2のプロパティのログオンタブでアカウントを変更したらできました。 現在ログオンしているアカウントにしてApacheを再起動するとエラーが出てしまいますが、 別のアカウントを作成してそれでログオンの設定をしたら無事アクセスできました。 しかし何故、現在ログオンしているアカウントは駄目なのでしょうか・・・ ↓エラーメッセージ -------------------------------------------------------------------------- ローカル コンピュータApache2サービスを開始できません。 エラー 1069: ログオンに失敗したため、サービスを開始できませんでした。 -------------------------------------------------------------------------- |
1