はじめに

プロローグの理由で、LinuxクライアントからPHPでSQL Serverに繋ぐ案件が発生した。

条件を整理すると下記の通り。

条件整理

クライアント:

  • Ubuntu Server 12.04 LTS
  • PHP5.3以上

サーバー:

  • SQL Server2008 R2 Express
  • WindowsXP SP3

特殊な条件:

  • apt-get 又はdpkg でインストール可能
  • 日本語テーブル、日本語カラムを難なく読めること
  • 文字化けしないこと
  • 32bitマシン

日本語テーブルは社内でWindowsベースでスクラッチしたシステムによくありがちである。

我が社もこの傾向が強い。

Free/Libre OpenSource Softwareで構築時には正直言って鬼門中の鬼門だが・・・。

5年前のマシンなので32bit CPUです。

FreeTDSを使うことに決定

大きく分けてやり方は2つある。

Microsoftのドライバーを使うか、FreeTDSを使うか

MicrosoftのドライバーMicrosoftもLinuxで動くSQL Serverのドライバーを用意している。

しかし、条件が合わないので今回は却下します。

我々の条件

  • Ubuntu
  • 32bit OS
  • apt-get installできること

Microsoftの条件

  • RedhatかSUSE
  • 64bit OS
  • tar.gzを解凍しコンパイルすること

Redhat

http://www.microsoft.com/en-us/download/details.aspx?id=34687

SUSE

http://www.microsoft.com/en-us/download/details.aspx?id=3643

FreeTDSでSQL Serverに接続

FreeTDS はSybaseとMicrosoft SQL Serverと通信するためのプロトコルです。

FreeTDSを使ってデータを取得する方法は下記の2つ

  • FreeTDS+DBLib関数(PHP)
  • FreeTDS+unixODBC+odbc関数(PHP)

apt-getでインストール可能

素晴らしいことに、FreeTDSもunixODBCもFLOSSなソフトだ。

apt-getでインストールが可能である。

FreeTDSを使うことにする。

次回は、FreeTDSの仕組みと概要FreeTDS+DBLib関数(PHP)での使い方を示す。

下記を読むとFreeTDSが何なのかが理解できるだろう。

What is FreeTDS ?

プロローグ

もう、Windows 2000 Serverはコリゴリだ。

XAMPP1.6でPHPを動かしていたが限界だ。

  • 古いOS過ぎて文献が転がっていない。
  • PHP5.2 までしか上げられない Windows2000はPHP5.2までしか動きません 
  • Shift_JIS <-> UTF-8 間の文字化け

そこでUbuntu Serverに改宗した。

上記の問題も一気に解決した。

ajaxploer、今はPydioというPHPのファイル共有サーバーを動かしている。

SQL Serverに繋ぐ案件発生

「SQL Serverに繋げられるようにしてほしい。」 という案件を頂いた。

php.iniのextensionをコメントアウトしただけで終了だと思っているらしく、 そんなに簡単なお話ではないということだけはお伝えした。

php.iniのextensionをコメントアウトしただけで動くのは、 Windows版のmssql関数だけである。

Linux版は、freetdsやらunixodbcやらをインストール、設定を行った上で php5_sybase関数をインストールしないと動かない。

当時は何やら調べないといけないという認識しかなかったが、 棘(イバラ)の道になるだろうことは確信していた。

しかし、もうMicrosoftは嫌なのだ。

SQL Serverのために快適なUbuntu Server生活から、 古くて誰も使わないWindows2000 Serverには戻りたくない。

OS購入のハードルは高いだろうし、 購入後3年後ぐらいにまた購入手続きを踏むと金食い虫としか思われないだろう。

しかし、それをしないとメンテできなくなる。

 

そもそもPHPはLinuxが標準だ。

Windows上で動かすことで新たな問題に対処しないといけないことがある。

文字化け、PHPのバージョン等の様々な問題はLinuxを標準とすることで解決する。

 

PHPerならLinux、それを死守するためにもLinuxからSQL Serverを見に行く案件は なんとしてでも達成するのだ。

やっと落ち着いてBlogが書けます。

OSC Kansai@Kyoto 2013というイベントをやってきました。
見に行くお客様というより、ブースも出しセミナーも発表してきました。

去年のKOF2012にJapan JasperServer Users Groupの関西支部として出店して2回目になります。
今回は、私が初めてセミナーをやりました。
以下の内容です。

iReport Desingerで幸せになりましょう

これスライドが10枚ぐらいだったのでサラッと説明してしまうとたった7分。
これ、Lightning Talk並みの短さです。(T T

即興で作った資料ですので後半は佐伯さんのBI入門で。
今回もなんとか助けられたという感じです。

今度はもう少しボリュームのある内容に持っていきます。
うーん、まだまだですが進まざる得ないのです。