在Ubuntu上安装PHP DataStax驱动程序

6

我正在尝试安装DataStax Cassandra的PHP驱动程序,当我运行以下命令时:

pecl install ext/package.xml

从git中检查后,我得到以下信息:
configure: error: Unable to load libcassandra

ERROR: `/tmp/pear/temp/cassandra/configure' failed

请问有人可以指引我成功安装这个驱动程序吗?

我使用的cassandra版本是2.1.8,也许这个驱动程序还没有更新以连接到最新版本的cassandra。


你的 config.log 文件显示了什么?应该位于正在构建的目录中。 - Nat Naydenova
cc: 错误: 无法识别命令行选项 '-qversion'。不太确定我正在寻找什么config.log。 - Moshi
你使用的是哪个Shell?你尝试过Bash吗? - phact
我还没有尝试过Bash,因为我认为需要使用标准终端。 - Moshi
当我启动cqlsh时,我会得到一个本地协议,一旦连接上了,那应该是Thrift协议吗? - Moshi
显示剩余5条评论
2个回答

6
以下步骤适用于我。可能因人而异。
$ uname -a
3.2.0-4-amd64 #1 SMP Debian 3.2.68-1+deb7u3 x86_64 GNU/Linux

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

$ sudo apt-get install g++ make cmake libssl-dev libgmp-dev php5 php5-dev openssl libpcre3-dev

现在试图安装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

运行以下命令后,这些服务将重新启动:mysql,exim4,cups,cron,atd,apache2。
$ sudo apt-get update
$ sudo apt-get install libc6
$ sudo apt-get -f install

下载并安装以下文件:

$ 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

下载并安装DataStax Cassandra PHP扩展:

$ git clone https://github.com/datastax/php-driver.git
$ cd php-driver
$ sudo pecl install ext/package.xml 

将扩展添加到php.ini文件中:

$ sudo sh -c 'echo "extension=cassandra.so" >>/etc/php5/apache2/php.ini'

重新启动 Apache:

$ sudo /etc/init.d/apache2 restart

请确认Cassandra是否可用,使用<?php phpinfo();来查看。


-2

问题已经解决,原因是phpinfo()没有引用正确的php.ini文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接