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 Software Chains

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 というのを使います。(もちろん他にも選択肢はあります)

unixODBCFreeTDS のインストール

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

Comment Form

Remember Me?


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

Return to Page Top