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 5.6 VC11 x86/x64 Thread Safe/Non Thread Safe
- PHP 5.5 VC11 x86/x64 Thread Safe/Non Thread Safe
- PHP 5.4 VC9 x86/x64 Thread Safe/Non Thread Safe
(それ以外のバイナリは用意されていません。 ソースコードからビルドしてインストールする以降を参考にしてビルドしてください。)
上記のどれかのPHPを使用している場合、以下の手順でTransactd クライアントをインストールできます。
- Transactd ダウンロードページ - Transactd client for PHP からPHPのバージョンに対応するZipパッケージをダウンロード・解凍します。
README_PHP
ファイルを参照し、ファイルのコピーと設定ファイルへの追記を行います。php_transactd.dll
をPHPのextension_dir
にコピー。transactd.php
をPHPのinclude_path
にコピー。tdclc_*.dll
とtdclcpp_*.dll
をphp.exe
と同じフォルダにコピー。tests\transactd
フォルダをphp\tests
フォルダにコピー。php.ini
ファイルに以下の行を追加。extension=php_transactd.dll
extension_dir
およびinclude_path
はphpinfo()
で確認できます。)phpinfo()
を確認し、transactd
の項目があることを確認します。
XAMPP for Windows に含まれるPHP
apache friends - xampp for windows で配布されている以下のXAMPPパッケージに含まれるPHPを使用している場合は、XAMPPに含まれるMySQL用のTransactd プラグインも併せてインストールすることができます。
- XAMPP Windows 5.6.3
- XAMPP Windows 5.5.19
- XAMPP Windows 1.8.2
- XAMPP Windows 1.8.3
上記のどれかのXAMPPを使用している場合、以下の手順でTransactd プラグインとクライアントをインストールできます。
- XAMPPのapacheとMySQLサーバーが起動している場合は、停止しておきます。
- Transactd ダウンロードページ - Transactd for XAMPP Windows からXAMPPのバージョンに対応するZipパッケージをダウンロード・解凍します。
- 解凍したフォルダをXAMPPのフォルダの中に移動します。例えば以下のようになります。
c:\xampp\transactd_2.4.2_for_xampp-win32-1.8.2-3-VC9
install.bat
をダブルクリックします。- インストールスクリプトが自動でXAMPPのインストールされたフォルダを検出します。
検出が成功すると
XAMPP found on path\to\xampp. Use it? [Y/N]:
と表示されるので、フォルダが正しければYを、間違っていればNを入力します。 - 検出できなかった場合は
Please input XAMPP 1.8.2 folder (for example C:\xampp):
と表示されるので、インストールフォルダを入力します。 - インストール先の確認が表示されるので、確認してYを入力します。その後ファイルのコピーが行われます。
Do you want to run `install plugin transactd` SQL now? [Note] Please START MySQL before run it. [Y/N]:
と表示されます。Transactd プラグインをMySQLにインストールする場合は、XAMPPのMySQLサーバーを起動してからYを入力します。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
TRANSACTD_CLIENTS_PREFIX
に指定するのは、PHP用クライアントが内部で利用するC用クライアントlibtdclc_*.so
のインストール先です。デフォルトは/usr/lib
です。
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
Thread Safety => enabled
だった場合は、スレッドセーフ版です。Thread Safety => disabled
だった場合は、ノンスレッドセーフ版です。
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から、必要なコンパイラをインストールします。
Compiler | Architecture | 必要なコンパイラと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コマンドプロンプトを開くことがあります。
- Visual C++ 2008 Express Editionでは、[スタートメニュー]-[すべてのプログラム]-[Microsoft Visual C++ 2008 Express Edition]-[Visual Studio Tools]-[Visual Studio 2008 コマンドプロンプト]を選択し起動します。
- Visual Studio 2012 Expressでx86ビルドを行う際は、[スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2012]-[Visual Studio Tools]-[VS2012 x86 Native Tools コマンドプロンプト]を選択し起動します。
- Visual Studio 2012 Expressでx64ビルドを行う際は、[スタートメニュー]-[すべてのプログラム]-[Microsoft Visual Studio 2012]-[Visual Studio Tools]-[VS2012 x64 Cross Tools コマンドプロンプト]を選択し起動します。
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
- 64bit版Boostをビルドする場合は
address-model=64
を付けます。32bit版の場合は削除します。 - Visual C++ 2008の場合は
toolset=msvc-9.0
としてVisual Studioのバージョンを明示的に指定できます。 - Visual C++ 2012の場合は
toolset=msvc-11.0
としてVisual Studioのバージョンを明示的に指定できます。
3-5. PHP SDK_TOOLSとソースコードの準備
Build your own PHP on Windows の手順に従って、PHPのソースコードを用意します。以下で詳しい手順を解説します。
- PHP Snapshotsから、自分のPHPのメジャーバージョンとマイナーバージョン に合ったソースコードをダウンロードします。例えばPHPが5.4.22だった場合、5.4のソースコードをダウンロードします。
c:\php-sdk
フォルダを作成します。- PHP SDK Binary tools (php-sdk-binary-tools-20110915.zip)
をダウンロードし、
c:\php-sdk
フォルダに解凍します。以下のようなフォルダ構成になります。c:\php-sdk ├─bin ├─script └─share
- Visual Studio コマンドプロンプトを開き、以下のコマンドを実行します。
cd c:\php-sdk bin\phpsdk_setvars.bat bin\phpsdk_buildtree.bat phpdev
C:\php-sdk\phpdev\vcXX\x86
といったフォルダが作成されているので、 自分のビルドするVCのバージョンとアーキテクチャに合わせたフォルダを開きます。 もし該当するフォルダが存在しなければ作成します。- ダウンロードしておいたPHPのソースコードを展開します。例えば以下のようなフォルダ構成になります。
c:\php-sdk ├─bin ├─script ├─share └─phpdev └─vc9 └─x86 └─php5.4-201312050630
- 4.のコマンドプロンプトのウィンドウに戻り、以下のコマンドを実行します。
cd C:\php-sdk\phpdev\vc9\x86\php5.4-201312050630 buildconf configure
- 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
- Visual C++ 2012のx86ビルドの場合は
Visual Studio 9 2008
の部分をVisual Studio 11
に、 x64ビルドの場合はVisual Studio 11 Win64
に変更します。 TRANSACTD_PHP_ZTS
には、スレッドセーフ版PHPではON
、 ノンスレッドセーフ版PHPではOFF
を指定します。TRANSACTD_PHP_SOURCE_ROOT
には、手順3-6で用意したPHPのソースコードのフォルダを指定します。TRANSACTD_PHP_LIBRARY_PATH
には、手順3-1で調べた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_*.dll
とbin\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