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

Transactd 2.4.2よりビルドとインストールがより簡単になっています。(特にLinux/Mac OS X)
2.4.0以前のバージョンをビルドする場合は、旧ガイドをご覧ください。

使用しているPHPに応じた方法でインストールした後、テストを実行してください。

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

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

公式配布のWindows用PHP

PHP for Windows: Binaries and Sourcesで配布されている 以下のWindows用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.4.2_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でのビルドとインストール

※Mac OS X 10.11以降の場合は、Mac OS X 10.11以降でのTransactd PHPクライアントのインストールも参照してください。

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

ビルドとインストールに必要なPHPに関する情報は、CMakeにより php -i またはphp-configコマンドを使用して取得されます。事前にこの2つのコマンドが正しく動作する状態が必要です。

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

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

sudo aptitude install cmake

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

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

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

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

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

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

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

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

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

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

cd ~/transactd
mkdir bld
cd bld
cmake .. -DTRANSACTD_PHP=ON -DBOOST_ROOT=~/boost_1_59_0 -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_59_0 \
  -DTRANSACTD_CLIENTS_PREFIX=/usr/lib \
  -DTRANSACTD_PHP_INCLUDE_PATH=/Applications/XAMPP/xamppfiles/include/

2-5. インストールの確認

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

php -i | grep ^transactd -A 3
(ex.)
transactd
Version => 3.0.0
Required Module => libtdclc_64.so.3.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. Boost C++ Libraries のダウンロードとインストール

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

C:\boost\boost_1_59_0

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

cd C:\boost\boost_1_59_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 --with-date_time --with-regex ^
  variant=debug,release link=static runtime-link=static,shared

@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 --with-date_time --with-regex ^
  variant=debug,release link=static runtime-link=static,shared

3-5. 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-6. Transactdのソースコードのダウンロード

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

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

C:\Users\Public\Documents\transactd

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

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

C:\Users\Public\Documents\transactd
md bld
cd bld
cmake .. -G "Visual Studio 9 2008" -DTRANSACTD_PHP=ON ^
  -BOOST_ROOT=C:\boost\boost_1_59_0
  -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

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

3-8. 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 => 3.0.0
Required Module => tdclc_32_3_0.dll
      (省略)

4. テストの実行

TransactdのテストはPHPUnitを利用しています。 PHPUnitをインストール後、ソースディレクトリの source/bzs/test/tdclphp以下にある*_Test.phpを実行してください。例:

phpunit transactd_Test.php
phpunit transactd_v3_Test.php