Transactd インストールガイド for PHP

このガイドは2.4.0以前のバージョン用の古いガイドです。 2.4.2以降のバージョンをビルドする場合は、最新のガイドをごらんください。

1. 使用しているPHPに応じたインストール方法の選択

ビルド済みバイナリをインストールする(Windows)

公式配布のWindows用PHP

PHP for Windows: Binaries and Sourcesで配布されている 以下のWindows用PHPを使用している場合は、用意されているビルド済みバイナリをインストールできます。

(現在、Non Thread Safe版PHP用のバイナリは用意されていません。 ソースコードからビルドしてインストールする以降を参考にしてビルドしてください。)

上記のどれかのPHPを使用している場合、以下の手順でTransactd クライアントをインストールできます。

  1. Transactd ダウンロードページ - Transactd client for PHP からPHPのバージョンに対応するZipパッケージをダウンロード・解凍します。
  2. README_PHPファイルを参照し、ファイルのコピーと設定ファイルへの追記を行います。
    • php_transactd.dllをPHPのextension_dirにコピー。
    • transactd.phpをPHPのinclude_pathにコピー。
    • tdclc_*.dlltdclcpp_*.dllphp.exeと同じフォルダにコピー。
    • tests\transactdフォルダをphp\testsフォルダにコピー。
    • php.iniファイルに以下の行を追加。
      extension=php_transactd.dll
    extension_dirおよびinclude_pathphpinfo()で確認できます。)
  3. phpinfo()を確認し、transactdの項目があることを確認します。

XAMPP for Windows に含まれるPHP

apache friends - xampp for windows で配布されている以下のXAMPPパッケージに含まれるPHPを使用している場合は、XAMPPに含まれるMySQL用のTransactd プラグインも併せてインストールすることができます。

上記のどれかのXAMPPを使用している場合、以下の手順でTransactd プラグインとクライアントをインストールできます。

  1. XAMPPのapacheとMySQLサーバーが起動している場合は、停止しておきます。
  2. Transactd ダウンロードページ - Transactd for XAMPP Windows からXAMPPのバージョンに対応するZipパッケージをダウンロード・解凍します。
  3. 解凍したフォルダをXAMPPのフォルダの中に移動します。例えば以下のようになります。
    c:\xampp\transactd_2.1.0_for_xampp-win32-1.8.2-3-VC9
  4. install.batをダブルクリックします。
  5. インストールスクリプトが自動でXAMPPのインストールされたフォルダを検出します。 検出が成功するとXAMPP found on path\to\xampp. Use it? [Y/N]: と表示されるので、フォルダが正しければYを、間違っていればNを入力します。
  6. 検出できなかった場合はPlease input XAMPP 1.8.2 folder (for example C:\xampp): と表示されるので、インストールフォルダを入力します。
  7. インストール先の確認が表示されるので、確認してYを入力します。その後ファイルのコピーが行われます。
  8. Do you want to run `install plugin transactd` SQL now? [Note] Please START MySQL before run it. [Y/N]: と表示されます。Transactd プラグインをMySQLにインストールする場合は、XAMPPのMySQLサーバーを起動してからYを入力します。
  9. Install done.と表示されたらインストール完了です。XAMPPのapacheとMySQLサーバーを起動し、phpinfo()transactdの項目があることを確認します。

ソースコードからビルドしてインストールする

現在、上記以外のPHP用のビルド済みバイナリは用意されていません。

ビルド済みバイナリが用意されていない環境では、2以降の手順に従ってインストールしてください。

2. Linux/Mac OS Xでのビルドとインストール

ここでは、Ubuntuでのビルドとインストールを例にします。

2-1. PHPの確認

ビルドに必要な情報を確認します。

Thread Safety

以下のコマンドでPHPがスレッドセーフ版かノンスレッドセーフ版かを調べます。

php -i | grep Thread

include_dir

以下のコマンドでPHPのインクルードディレクトリを調べます。

php-config --include-dir
(ex.) => /usr/include/php5

2-2. CMakeのインストール

Transactd クライアントのビルドにはCMakeが必要になります。

sudo aptitude install cmake

2-3. SWIGのインストール(Transactd 2.0以下のみ)

Transactd 2.0以下のバージョンでは、PHP用クライアントのビルドにSWIG(2.0以上)が必要になります。 Transactd 2.1以降のバージョンには必要ありません。

sudo aptitude install swig2.0

2-4. Boost C++ Librariesのダウンロードとビルド

Boostのダウンロードページからソースコード をダウンロードし、解凍します。

cd ~
wget http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz/download \
     -O boost_1_55_0.tar.gz
tar xzf boost_1_55_0.tar.gz

以下のコマンドを実行しBoostのビルドを行います。

cd ~/boost_1_55_0
./bootstrap.sh --with-libraries=chrono,filesystem,system,thread,timer,serialization,program_options
./b2 cxxflags=-fPIC

2-5. Transactdのソースコードのダウンロード

Transactd ダウンロードページから最新の transactd-source-*.*.*.zipをダウンロードし、解凍します。

cd ~
wget http://www.bizstation.jp/al/transactd/download/transactd-2.1.0/transactd-source-2.1.0.zip
#Mac OS Xでは
#curl curl -O http://www.bizstation.jp/al/transactd/download/transactd-2.1.0/transactd-source-2.1.0.zip
unzip -q transactd-source-2.1.0.zip -d transactd

2-6. Transactd クライアントのビルドとインストール

以下のコマンドを実行しTransactd クライアントをビルド・インストールします。

cd ~/transactd
mkdir bld
cd bld
cmake .. -DTRANSACTD_PHP=ON -DBOOST_ROOT=~/boost_1_55_0 \
  -DTRANSACTD_PHP_ZTS=OFF \
  -DTRANSACTD_PHP_SOURCE_ROOT=/usr/include/php5/ \
  -DTRANSACTD_CLIENTS_PREFIX=/usr/lib
make
sudo make install

XAMPP for Mac OS XのPHPを使用している場合、 XAMPPに含まれるiconvを利用するためにTRANSACTD_PHP_INCLUDE_PATHにパスを指定する必要があります。

cmake .. -DTRANSACTD_PHP=ON -DBOOST_ROOT=~/boost_1_55_0 \
  -DTRANSACTD_PHP_ZTS=OFF \
  -DTRANSACTD_PHP_SOURCE_ROOT=/usr/include/php5/ \
  -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
  -DTRANSACTD_PHP_INCLUDE_PATH=/Applications/XAMPP/xamppfiles/include/

2-7. PHP拡張のインストールと設定

以下のコマンドでPHP拡張のディレクトリを確認し、ビルドした拡張のファイルをコピーします。

php -i | grep extension_dir
(ex.) => extension_dir => /usr/lib/php5/20100525
sudo cp bin/php_transactd.so /usr/lib/php5/20100525/

以下のコマンドでPHPのインクルードパスを確認し、生成された拡張用のスクリプトファイルをコピーします。

php -i | grep include_path
(ex.) => include_path => .:/usr/share/php:/usr/share/pear
sudo cp bin/transactd.php /usr/share/php/

PHPの設定にextension=php_transactd.soの行を追加します。

php -i | grep "Configuration File"
(ex.) => Configuration File (php.ini) Path => /etc/php5/cli
echo extension=php_transactd.so > /etc/php5/cli/conf.d/transactd.ini

phpinfo()などでインストール状況を確認します。

php -i | grep ^transactd -A 3
(ex.)
transactd
Version => 2.1.0
Required Module => libtdclc_64.so.2.0

3. Windowsでのビルドとインストール

3-1. PHPの確認

PHP Version

PHPのバージョンを調べます。phpinfo()を表示してPHP Version で検索します。以下のコマンドでも確認できます。

php -i | findstr /B /C:"PHP Version"

Architecture

PHPのアーキテクチャ(x86 or x64)を調べます。phpinfo()を表示してArchitecture で検索します。以下のコマンドでも確認できます。

php -i | findstr Architecture

Thread Safety

PHPがスレッドセーフ版かノンスレッドセーフ版かを調べます。phpinfo()を表示してThread Safety で検索します。以下のコマンドでも確認できます。

php -i | findstr Thread

Compiler

ビルドに必要なコンパイラを調べます。phpinfo()を表示してCompiler で検索します。以下のコマンドでも確認できます。

php -i | findstr Compiler

libファイル

通常、PHPのフォルダ内のdev\php5ts.libもしくはdev\php5.libにlibファイルがあります。 後の手順で必要になるのでパスを確認しておきます。

extension_dir

PHP拡張のフォルダを確認します。phpinfo()を表示してextension_dir で検索します。以下のコマンドでも確認できます。

php -i | findstr extension_dir
(ex.) => extension_dir => ext

include_path

PHPのインクルードパスを確認します。phpinfo()を表示してinclude_path で検索します。以下のコマンドでも確認できます。

php -i | findstr include_path
(ex.) => include_path => .;C:\php\pear

php.ini

PHPの設定ファイルのパスを確認します。phpinfo()を表示してLoaded Configuration File で検索します。以下のコマンドでも確認できます。

php -i | findstr /B /C:"Loaded Configuration File"
(ex.) => Loaded Configuration File => C:\php\php.ini

3-2. コンパイラのダウンロードとインストール

3-1で調べたCompilerとArchitectureから、必要なコンパイラをインストールします。

CompilerArchitecture必要なコンパイラとExpress版へのリンク
MSVC9 (Visual C++ 2008)x86 Microsoft Visual C++ 2008
( Microsoft Visual C++ 2008 Express Edition)
MSVC11 (Visual C++ 2012)x86 Microsoft Visual C++ 2012
( Microsoft Visual Studio Express 2012 for Windows Desktop)
x64

Visual Studioコマンドプロンプトの起動方法

後述する手順の中で、Visual Studioコマンドプロンプトを開くことがあります。

3-3. CMakeのダウンロードとインストール

CMake ダウンロードページから Windows (Win32 Installer) をダウンロードし実行します。

途中、「Add CMake to the system PATH for all(or current) users」を選択し、 cmakeの実行ファイルにパスが通るようにします。

3-4. SWIGのダウンロードとインストール(Transactd 2.0以下のみ)

Transactd 2.0以下のバージョンでは、PHP用クライアントのビルドにSWIG(2.0以上)が必要になります。 Transactd 2.1以降のバージョンには必要ありません。

SWIG ダウンロードページから swigwin-3.0.2.zip (2014/09/10時点) をダウンロードし、解凍します。

解凍したフォルダのパスを環境変数PATHに追加します。環境変数は [コントロールパネル]-[システム]-[システム]-[詳細設定]タブ-[環境変数]から追加できます。

コマンドプロンプトを起動し、以下のコマンドを実行します。SWIGが正しくインストールされている場合、バージョン情報が表示されます。

swig -version

3-5. Boost C++ Libraries のダウンロードとインストール

Boostのダウンロードページからソースコードをダウンロードし、解凍します。 ここでは、以下のフォルダに保存したものとします。

C:\Program Files\boost\boost_1_55_0

Visual Studioコマンドプロンプトを起動します。以下のコマンドを実行し、Boostのビルドを行います。

cd C:\Program Files\boost\boost_1_55_0
bootstrap.bat

@REM 64bitの場合
bjam.exe toolset=msvc threading=multi address-model=64 architecture=x86 ^
  --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
  --with-serialization --with-program_options ^
  variant=debug,release link=static runtime-link=static

@REM 32bitの場合
bjam.exe toolset=msvc threading=multi architecture=x86 ^
  --with-chrono --with-filesystem --with-system --with-thread --with-timer ^
  --with-serialization --with-program_options ^
  variant=debug,release link=static runtime-link=static

インストールができたら、システム環境変数に TI_BOOST_ROOT_32 および TI_BOOST_ROOT_64 という変数を追加し、32bitと64bitのフォルダのパスを値として設定します。 自分のビルドするbitに合わせた変数が設定されていれば、両方を設定する必要はありません。

64bitの場合
TI_BOOST_ROOT_64 = C:\Program Files\boost\boost_1_55_0

32bitの場合
TI_BOOST_ROOT_32 = C:\Program Files\boost\boost_1_55_0

環境変数の追加は、[コントロールパネル]-[システム]-[詳細設定]タブ-[環境変数]から行います。

3-6. PHP SDK_TOOLSとソースコードの準備

Build your own PHP on Windows の手順に従って、PHPのソースコードを用意します。以下で詳しい手順を解説します。

  1. PHP Snapshotsから、自分のPHPのメジャーバージョンとマイナーバージョン に合ったソースコードをダウンロードします。例えばPHPが5.4.22だった場合、5.4のソースコードをダウンロードします。
  2. c:\php-sdkフォルダを作成します。
  3. PHP SDK Binary tools (php-sdk-binary-tools-20110915.zip) をダウンロードし、c:\php-sdkフォルダに解凍します。以下のようなフォルダ構成になります。
    c:\php-sdk
        ├─bin
        ├─script
        └─share
  4. Visual Studio コマンドプロンプトを開き、以下のコマンドを実行します。
    cd c:\php-sdk
    bin\phpsdk_setvars.bat
    bin\phpsdk_buildtree.bat phpdev
  5. C:\php-sdk\phpdev\vcXX\x86といったフォルダが作成されているので、 自分のビルドするVCのバージョンとアーキテクチャに合わせたフォルダを開きます。 もし該当するフォルダが存在しなければ作成します。
  6. ダウンロードしておいたPHPのソースコードを展開します。例えば以下のようなフォルダ構成になります。
    c:\php-sdk
        ├─bin
        ├─script
        ├─share
        └─phpdev
            └─vc9
                └─x86
                    └─php5.4-201312050630
  7. 4.のコマンドプロンプトのウィンドウに戻り、以下のコマンドを実行します。
    cd C:\php-sdk\phpdev\vc9\x86\php5.4-201312050630
    buildconf
    configure
  8. Transactd クライアントのビルドに必要なのはヘッダーファイルのみなので、ここで終了します。

3-7. Transactdのソースコードのダウンロード

Transactd ダウンロードページから最新の transactd-source-*.*.*.zipをダウンロードし、解凍します。

ここでは、以下のフォルダに展開したとします。

C:\Users\Public\Documents\transactd

3-8. Transactd クライアントのビルド

Visual Studio コマンドプロンプトを開き、以下のコマンドを実行してTransactd クライアント用のプロジェクトファイルを生成します。

C:\Users\Public\Documents\transactd
md bld
cd bld
cmake .. -G "Visual Studio 9 2008" -DTRANSACTD_PHP=ON ^
  -DTRANSACTD_PHP_ZTS=ON ^
  -DTRANSACTD_PHP_SOURCE_ROOT=C:\php-sdk\phpdev\vc9\x86\php5.4-201312050630 ^
  -DTRANSACTD_PHP_LIBRARY_PATH=C:\php\dev\php5ts.lib

生成されたプロジェクトファイルtdcl.slnを開き、[ビルド]-[構成マネージャ]から構成を[Release]に変更して、 [ビルド]-[ソリューションのビルド]を行います。

3-9. PHP拡張のインストールと設定

build\tdclphp\Release\php_transactd.dllを手順3-1で調べたPHP拡張のフォルダにコピーします。

build\tdclphp\transactd.phpを手順3-1で調べたPHPのインクルードパスにコピーします。

bin\tdclc_*.dllbin\tdclcpp_*.dllをphp.exeと同じフォルダにコピーします。

手順3-1で調べたPHPの設定ファイルにextension=php_transactd.dllの行を追加します。

phpinfo()などでインストール状況を確認します。

php -i
(ex.) (省略)
transactd

Version => 2.1.0
Required Module => tdclc_32_2_0.dll
      (省略)