PHPからthriftでcassandraに接続してみた - その1

以下メモ


$ 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.ini

extension=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);
}

今回はここまで