How-to: Linux talks to Microsoft SQL Server by PHP Data Objects (PDO) その1
- Date
- 2007-04-17 (Tue)
- Category
- php
Linux で走る PHP のアプリケーションサーバーから Microsoft SQL Server (以下 MSSQL ) に接続したい機会って、あまりないんでしょうか? Web で探しても余り出てこなかったので、メモしておきます。
PHP で今や PHP Data Objects (以下 PDO) を使わない Database 開発はあり得ない、とまでは言わないけど、新しく始めるのに PDO を使わない手はないと思います。ので、今回は背景の説明で力つきましたが、次回にて Linux 上で走る PHP から PDO を使って MSSQL に接続する方法を解説します。加えて PDO を共有モジュールとして組み込んでおけば、こういう時にデータベースドライバを組み込めばいいだけで簡単に始められるので、pecl コマンドを使った PDO のコンパイルも簡単に説明します。
必要なもの
- MSSQL サーバー (DB)
- TCP 接続を受け付ける設定
- ODBC 接続の UID と PWD
- Linux サーバー (Application Server)
- コンパイルできる環境
- PHP5
- unixODBC
- FreeTDS
まずは使うソフトウェアの説明。以下の図をご覧あれ。
Database と通信するソフトウェアは、これらパーツの組み合わせだと思います。一番 Typical なのは、一つのマシンに MySQL と Apache と PHP が一緒に走っていて、開発機だったら Client である Browser も走っているかもしれません。そこでの処理の流れは Browser ⇔ Apache ⇔ PHP ⇔ Database となります。また PHP と Database (は MySQL だと仮定して、そ) の間だけ注目すると PHP ⇔ MySQL 関数 ⇔ MySQL ライブラリ ⇔ unix socket コネクション ⇔ MySQL Server というつながりになります。これが Application と Database が別れたマシンだと、Connection Protocol の部分から、例えば TCP/IP 上を流れる、ということです。
今回、使いたい
- Application:
- PHP on Linux (CentOS)
- Database:
- MSSQL on Windows Server 2003
だと、Connection Protocol は ODBC で、Driver は FreeTDS というのを使います。(もちろん他にも選択肢はあります)
unixODBC と FreeTDS のインストール
CentOS なので yum を使って unixODBC と unixODBC-devel をインストールしました。正直に言うとソースからのインストールも試みたのですが、Qt ライブラリがないというエラーで ./configure から先に進みませんでした。Web サイトによると Qt は設定用の GUI に必要で、なければ無視して先に進むとあったのですが… 一応 "--witout-x --without-qt-dir --without-qt-libraries --without-qt-programs"とかは試したんですけど。unixODBC-devel は PDO をコンパイルする時に必要になります。
副次的に rpm -qs unixODBC というコマンドで、何処にどのファイルがインストールされたか一目瞭然で、これが後で結構役にたちました。
FreeTDS は自分でビルドしました。./configure --with-opeenssl とだけして、後はそのまま make && make install で /usr/local 以下にインストールされました。
猛烈に眠くなったので、また明日。How-to: Linux talks to Microsoft SQL Server by PHP Data Objects (PDO) その2へ続く。。。
Comment:0
Trackback:0
- TrackBack URL for this entry
- http://blogs.grf-design.com/mt/mt-tb.cgi/207
- Listed below are links to weblogs that reference
- How-to: Linux talks to Microsoft SQL Server by PHP Data Objects (PDO) その1 from The Croton
