PHPからthriftでcassandraに接続してみた - その1
以下メモ
- Thriftのインスコ
$ tar zxvf thrift-0.2.0-incubating.tar.gz
$ cd thrift-0.2.0
$ ./configure
$ make
$ sudo make install
$ ll /usr/local/include/thrift/
- PHPからthrift_protocolを利用する
$ cd lib/php/src/ext/thrift_protocol
$ phpize
$ ./configure --enable-thrift_protocol
$ make
$ sudo make install
$ ll $PHP_EXT/no-debug-non-zts-20060613/
$ sudo vi /usr/local/lib/php.iniextension=thrift_protocol.so
[thrift]
$ sudo mkdir -p /usr/share/php/Thrift
$ cd lib/php/src
$ sudo cp -R ./* /usr/share/php/Thrift/
$ tar zxvf apache-cassandra-0.6.3-bin.tar.gz
$ cd apache-cassandra-0.6.3
$ cd interface
$ thrift --gen php:server cassandra.thrift
$ sudo mkdir /usr/share/php/Thrift/packages
$ sudo cp -R cassandra /usr/share/php/Thrift/packages/
$ ll /usr/share/php/Thrift/
・
・
・
- PHPからライブラリの読み込みのテスト
※まだCassandraは立ち上げてないのでconnectはしない
$ vi cassandra_example.php
$GLOBALS['THRIFT_ROOT'] = '/usr/share/php/Thrift';
require_once $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/Cassandra.php';
require_once $GLOBALS['THRIFT_ROOT'].'/packages/cassandra/cassandra_types.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TSocket.php';
require_once $GLOBALS['THRIFT_ROOT'].'/protocol/TBinaryProtocol.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TFramedTransport.php';
require_once $GLOBALS['THRIFT_ROOT'].'/transport/TBufferedTransport.php';try {
$socket = new TSocket('127.0.0.1', 9160);
var_dump($socket);
$transport = new TBufferedTransport($socket, 1024, 1024);
$protocol = new TBinaryProtocolAccelerated($transport);
$keyspace = 'Keyspace1';//Cassandraクライアントの作成
$client = new CassandraClient($protocol);
var_dump($client);} catch (Exception $e) {
var_dump($e);
}
今回はここまで