- 締切済み
ネットワークドライブ経由でODBC
WindowsXP、Apache2/2.0.55、PHP/5.0.5の環境で、ODBCを介してMicrosoft Access(*.mdb)にアクセスするphpを作ろうと思ってます。 データソースがローカルにあるときは上手くいくのですが、ネットワークドライブに割り当てられた共有にあるとウォーニングが出て、データベースに接続できません。 どうすれば接続できるでしょうか?参考にしたURLはhttp://www.phpfreaks.com/print.php?cmd=tutorial&tut_id=61です。 出たウォーニングは Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Microsoft Access Driver] パス '(不明)' は正しくありません。パス名に間違いがないことと、ファイルが置かれたサーバーに接続していることを確認してください。, SQL state S1009 in SQLConnect in C:\Program Files\Apache Group\Apache2\htdocs\odbc\odbc.php on line 2 Could Not Connect to ODBC Database! です。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- cocom32
- ベストアンサー率58% (75/129)
割り当てたネットワークドライブは読み取り専用ではありませんか。 読み取り専用なら、フルアクセスにしてください。
- cocom32
- ベストアンサー率58% (75/129)
エクセルからネットワークドライブのアクセスに接続した時に同じエラーがでました。 IEのツール(T)→インターネットオプション→セキュリティタブ イントラネットを選択 サイト(S)→詳細設定(A)→次のWEBサイトをゾーンに追加する(D)に file://xxx.xxx.xxx.xxx サーバーのアドレスを入力 追加(A)ボタンをクリックし WEBサイト(W)に追加する。 後はOKボタンですべて閉じる これで接続できるかやってみてください。
補足
やってみましたが、同じ結果でした。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
#2です。 どのようなネットワークドライブか書かれていませんが、 何の認証も行わないドライブなんですか? apacheサービス起動ユーザの話は・・ サービス上のタスクからアクセスすることになるので、 Windows認証が関係するようなケースでは、よく問題に なるところなんですが。 認証なしにドライブがアクセスできるような種類の ネットワークドライブ相手なら関係ないですけどね。 (独自認証するケースも関係ないですね) TestDBの定義で、UNC指定にするだけでOKなのではないですかね。
補足
> どのようなネットワークドライブか書かれていませんが、 > 何の認証も行わないドライブなんですか? ユーザー名とパスワードで認証を行っているドライブです。 > TestDBの定義で、UNC指定にするだけでOKなのではないですかね。 やってみましたが、駄目でした。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
>#1どの それだとネットワークドライブへのapacheからのアクセスが解消されません。 まずは、apacheサービスをデフォルトであるローカルシステムアカウントでなく、 ネットワークドライブへのアクセス権を持つユーザで、サービスを実行してください。 次に、phpでのmdb指定を、UNC指定(\\server\share\hoge.mdbとか)で行うよう変更してください。 それで解決すると思います。
補足
ネットワークドライブにパーミッションはつけてないのですが。 phpではmdbを直接指定するのではなくODBC経由で(TestDBとして)指定しています。
- nov-d
- ベストアンサー率36% (51/140)
WebサーバからDBサーバへの接続が認証されていないということではないでしょうか? もしそうであれば、DBサーバへのログインID、パスワードをWebサーバ側に登録しておくことで回避できるように思います。 <サーバへのログインID、パスワードの登録方法(WinXP)> 管理ツール→ユーザアカウント→詳細タブ→パスワードの管理 外してますかねぇ。(^_^;
補足
残念ながら読み取り専用ではありません。 あと、#2さんへの補足で > ネットワークドライブにパーミッションはつけてないのですが。 と書いたのは私の勘違いでした。申し訳ございません。