PHP を使用する場合、選択肢は 1 つだけです。それは、ODBC です。
Ubuntu で (IBM i 上の) DB2 for i に接続する方法について、順を追って説明します。
IBM から無料の iSeriesAccess-6.1.0-1.2.i386.rpm ファイルをダウンロードします (これを取得するには、無料のアカウントを作成する必要があります)。
RPM ファイルを Ubuntu が理解できるものに変換します。sudo alien iSeriesAccess-6.1.0-1.2.i386.rpm
結果の .deb をインストールします。sudo dpkg -i iseriesaccess_6.1.0-2.2_i386.deb
インストールされた iSeries ライブラリを、Ubuntu が期待する場所にコピーします。sudo cp /opt/ibm/iSeriesAccess/lib/* /usr/lib
/etc/odbc.ini ファイルを編集して、以下を含めます。
[primary]
Description = primary
Driver = iSeries Access ODBC Driver
System = IP_ADDRESS
UserID = USERNAME
Password = PASSWORD
Naming = 0
DefaultLibraries = QGPL
Database = XXXXXXXXXX
ConnectionType = 0
CommitMode = 2
ExtendedDynamic = 0
DefaultPkgLibrary = QGPL
DefaultPackage = A/DEFAULT(IBM),2,0,1,0,512
AllowDataCompression = 1
LibraryView = 0
AllowUnsupportedChar = 0
ForceTranslation = 0
Trace = 0
/etc/odbcinst.ini ファイルを編集して、以下を含めます。
[iSeries Access ODBC Driver]
Description = iSeries Access for Linux ODBC Driver
Driver = /usr/lib/libcwbodbc.so
Setup = /usr/lib/libcwbodbcs.so
NOTE1 = If using unixODBC 2.2.11 or later and you want the 32 and 64-bit ODBC drivers to share DSN's,
NOTE2 = the following Driver64/Setup64 keywords will provide that support.
Driver64 = /usr/lib/lib64/libcwbodbc.so
Setup64 = /usr/lib/lib64/libcwbodbcs.so
Threading = 2
DontDLClose = 1
UsageCount = 1
次に、PDO との接続を作成します。
$pdo = new PDO("odbc:DRIVER={iSeries Access ODBC Driver};SYSTEM=$server;PROTOCOL=TCPIP", $username, $password);