在ubuntu上安装php datastax驱动程序

Mos*_*shi 6 php apache cassandra datastax datastax-php-driver

我正在尝试为Cassandra安装datastax php驱动程序,当我运行以下命令时:

pecl install ext/package.xml
Run Code Online (Sandbox Code Playgroud)

检查出git之后我得到以下消息:

configure: error: Unable to load libcassandra

ERROR: `/tmp/pear/temp/cassandra/configure' failed
Run Code Online (Sandbox Code Playgroud)

有人能指出我正确的方向,以成功安装此驱动程序吗?

我正在使用的cassandra版本是2.1.8所以也许驱动程序尚未更新以连接到最新版本的cassandra.

pai*_*ing 5

以下步骤对我有用.因人而异.

$ uname -a
3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u3 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

安装一些先决条件(libuv-dev从列表中删除):

$ sudo apt-get install g++ make cmake libssl-dev libgmp-dev php5 php5-dev openssl libpcre3-dev
Run Code Online (Sandbox Code Playgroud)

尝试立即安装libuv-dev将导致以下错误:

libuv依赖于libc6(> = 2.14); 但是:系统上的libc6:amd64版本是2.13-38 + deb7u8.

Wheezy似乎有一个稍微旧的版本libc6.升到Jessie获得2.14.将以下内容添加到/etc/apt/sources.list:

deb ftp://ftp.debian.org/debian/ jessie main
deb-src ftp://ftp.debian.org/debian/ jessie main
Run Code Online (Sandbox Code Playgroud)

运行以下命令后,将重新启动这些服务:mysql,exim4,cups,cron,atd,apache2

$ sudo apt-get update
$ sudo apt-get install libc6
$ sudo apt-get -f install
Run Code Online (Sandbox Code Playgroud)

下载并安装以下文件:

$ wget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/libuv_1.6.1-1_amd64.deb
$ wget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/libuv-dev_1.6.1-1_amd64.deb
$ wget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra-cpp-driver_2.1.0-1_amd64.deb
$ wget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra-cpp-driver-dev_2.1.0-1_amd64.deb
$ sudo dpkg -i libuv_1.6.1-1_amd64.deb
$ sudo dpkg -i libuv-dev_1.6.1-1_amd64.deb
$ sudo dpkg -i cassandra-cpp-driver_2.1.0-1_amd64.deb
$ sudo dpkg -i cassandra-cpp-driver-dev_2.1.0-1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

下载并安装DataStax Cassandra PHP扩展:

$ git clone https://github.com/datastax/php-driver.git
$ cd php-driver
$ sudo pecl install ext/package.xml 
Run Code Online (Sandbox Code Playgroud)

将扩展名添加到php.ini:

$ sudo sh -c 'echo "extension=cassandra.so" >>/etc/php5/apache2/php.ini'
Run Code Online (Sandbox Code Playgroud)

重启Apache:

$ sudo /etc/init.d/apache2 restart
Run Code Online (Sandbox Code Playgroud)

确认Cassandra正在使用 <?php phpinfo();


Mos*_*shi -2

此问题已解决,因为 phpinfo() 中未引用不正确的 php.ini 的问题。