SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 採用情報 ...
技術者募集中

【php】pdo_odbc_mssql

Linux 上の PHP から、PDO を使って、Micrsoft SQL server に接続する。

以前インストールに使ったソースがあるときは

make distclean

基本はこんな感じで configure オプションを追加する。

--with-unixODBC --with-pdo-odbc=unixODBC,/usr/local

ライブラリがないと configure 通らない。足りなかったら install。

yum install unixODBC unixODBC-devel freetds freetds-devel

※ freetds系は yum でサードリポジトリの追加をしておく必要があります。

configure

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans --enable-mbregex --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-zlib=/usr --with-png-dir=/usr --enable-iconv --enable-bcmath --enable-ftp --with-regex=php --with-mysql=/usr/local/mysql --with-curl --enable-trans-sid --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-imap=/usr/local/lib/imap-2007a --with-imap-ssl --enable-memory-limit --with-ldap=/usr --enable-soap --with-openssl --with-curl --with-oci8=instantclient,/usr/lib/oracle/10.2.0.3/client/lib/ --with-xsl --with-mssql --with-unixODBC --with-pdo-odbc=unixODBC,/usr/local

unixODBC を yum でインストールしたから場所が違う!!

./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans --enable-mbregex --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr --with-jpeg-dir=/usr --with-zlib=/usr --with-png-dir=/usr --enable-iconv --enable-bcmath --enable-ftp --with-regex=php --with-mysql=/usr/local/mysql --with-curl --enable-trans-sid --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-imap=/usr/local/lib/imap-2007a --with-imap-ssl --enable-memory-limit --with-ldap=/usr --enable-soap --with-openssl --with-curl --with-oci8=instantclient,/usr/lib/oracle/10.2.0.3/client/lib/ --with-xsl --with-mssql --with-unixODBC=/usr --with-pdo-odbc=unixODBC,/usr

インストール

make
make install

Linux から MS SQL Server するなら dblib を使えとのこと

$ cd php-5.2.3/ext/pdo_dblib
$ phpize
$ ./configure
$ make
$ make install

dblib は php.ini も変更して有効に

extension=pdo_dblib.so

Apache再起動

apachectl stop
apachectl start

freetds設定

vi /etc/freetds.conf

[global]に下記の設定を入れる

tds version = 8.0
client charset = UTF-8

関連するメモ

コメント