2015-10-07 2 views
5
pecl install cassandra 

выдает ошибку:PECL установить Cassandra бросает: «Ошибка: Не удается загрузить libcassandra»

сообщения

configure: error: Unable to load libcassandra

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

Этой ошибки является предметом другого вопроса здесь на SO, но не был решен: Installing php datastax driver on ubuntu

Может ли кто-нибудь помочь?

ответ

7

Вам не хватает драйвера cassandra C++. Я столкнулся с той же проблемой в Ubuntu 14.04. Я сделал следующее, и она работала для меня:

Предпосылки (Ubuntu 14.04):

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

Скачать следующие пакеты:

wget http://downloads.datastax.com/cpp-driver/ubuntu/16.04/dependenices/libuv/v1.8.0/libuv_1.8.0-1_amd64.deb 
wget http://downloads.datastax.com/cpp-driver/ubuntu/16.04/dependenices/libuv/v1.8.0/libuv-dev_1.8.0-1_amd64.deb 
wget http://downloads.datastax.com/cpp-driver/ubuntu/16.04/v2.4.1/cassandra-cpp-driver_2.4.1-1_amd64.deb 
wget http://downloads.datastax.com/cpp-driver/ubuntu/16.04/v2.4.1/cassandra-cpp-driver-dev_2.4.1-1_amd64.deb 

Установите их в таком порядке, используя DPKG:

sudo dpkg -i libuv_1.8.0-1_amd64.deb 
sudo dpkg -i libuv-dev_1.8.0-1_amd64.deb 
sudo dpkg -i cassandra-cpp-driver-dev_2.4.1-1_amd64.deb 
sudo dpkg -i cassandra-cpp-driver_2.4.1-1_amd64.deb 

Вы должны уметь устанавливать cassandra с помощью pecl. Не забудьте добавить extension=cassandra.so в файл php.ini и перезапустить процесс php.

Основываясь на ответе в обсуждении, которое вы связывали ранее.

+0

Как решить эту проблему на os x? –

+0

Я не знаком с os x. Но я не вижу файлы пакетов для osx, поэтому я предполагаю, что вы должны создавать и устанавливать эти пакеты [libuv, cassandra-cpp-driver] из источников –

+0

Для ubuntu 14.0 вы можете использовать следующие ссылки –

2

Это, как я получил его на работу (на Debian):

sudo apt-get update 
sudo apt-get install -y g++ git make cmake clang libssl-dev libgmp-dev php5-cgi php5-fpm php5 php5-dev openssl libpcre3-dev 
sudo apt-get install libc6 
sudo apt-get -f install 
sudo curl http://downloads.datastax.com/cpp-driver/ubuntu/14.04/libuv_1.7.5-1_amd64.deb > /var/www/html/libuv_1.7.5-1_amd64.deb 
sudo curl http://downloads.datastax.com/cpp-driver/ubuntu/14.04/libuv-dev_1.7.5-1_amd64.deb > /var/www/html/libuv-dev_1.7.5-1_amd64.deb 
sudo curl http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra-cpp-driver_2.0.1-1_amd64.deb > cassandra-cpp-driver_2.0.1-1_amd64.deb 
sudo curl http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra-cpp-driver-dev_2.0.1-1_amd64.deb > cassandra-cpp-driver-dev_2.0.1-1_amd64.deb 
sudo dpkg -i libuv_1.7.5-1_amd64.deb 
sudo dpkg -i libuv-dev_1.7.5-1_amd64.deb 
sudo dpkg -i cassandra-cpp-driver_2.0.1-1_amd64.deb 
sudo dpkg -i cassandra-cpp-driver-dev_2.0.1-1_amd64.deb 
sudo pecl install cassandra 
0

Для официального PHP машине Docker в:

cd /tmp 

apt-get install php-pear php5-dev libgmp-dev libpcre3-dev g++ make cmake libssl-dev openssl 

php -r '$files = ["http://downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies/libuv/v1.8.0/libuv_1.8.0-1_amd64.deb", "http://downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies/libuv/v1.8.0/libuv-dev_1.8.0-1_amd64.deb", "http://downloads.datastax.com/cpp-driver/ubuntu/14.04/v2.3.0/cassandra-cpp-driver_2.3.0-1_amd64.deb", "http://downloads.datastax.com/cpp-driver/ubuntu/14.04/v2.3.0/cassandra-cpp-driver-dev_2.3.0-1_amd64.deb"]; foreach($files as $file) { copy($file, basename($file)); }' 

dpkg -i libuv_1.8.0-1_amd64.deb 
dpkg -i libuv-dev_1.8.0-1_amd64.deb 
dpkg -i cassandra-cpp-driver_2.3.0-1_amd64.deb 
dpkg -i cassandra-cpp-driver-dev_2.3.0-1_amd64.deb 

pecl install cassandra 

echo 'extension=cassandra.so' > /usr/local/etc/php/conf.d/php-ext-cassandra.ini 

Затем перезапустите контейнер (docker-compose restart ~~image~fpm~~).

1

Для убунту 14.04: шаги по установке:

sudo apt-get install php-pear php5-dev libgmp-dev libpcre3-dev g++ make cmake libssl-dev openssl<br /> 
wget downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies/libuv/v1.8.0/libuv_1.8.0-1_amd64.deb<br />wget downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies/libuv/v1.8.0/libuv-dev_1.8.0-1_amd64.deb<br /> 
wget downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra/v2.4.2/cassandra-cpp-driver_2.4.2-1_amd64.deb<br /> 
wget downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra/v2.4.2/cassandra-cpp-driver-dev_2.4.2-1_amd64.deb 

sudo dpkg -i libuv_1.8.0-1_amd64.deb<br /> 
sudo dpkg -i libuv-dev_1.8.0-1_amd64.deb<br /> 
sudo dpkg -i cassandra-cpp-driver_2.4.2-1_amd64.deb<br /> 
sudo dpkg -i cassandra-cpp-driver-dev_2.4.2-1_amd64.deb<br /> 

pecl install cassandra 

ADD extension=cassandra.so in php.ini 

restart the PHP process<br /> 

Вот и все. :)

1

Процедуру CentOS 7. Установка являются:

sudo yum update 
sudo yum install automake cmake gcc gcc-c++ git libtool openssl-devel wget gmp gmp-devel boost php-devel pcre-devel git 
pushd /tmp 
wget http://dist.libuv.org/dist/v1.8.0/libuv-v1.8.0.tar.gz 
tar xzf libuv-v1.8.0.tar.gz 
pushd libuv-v1.8.0 
sh autogen.sh 
./configure 
sudo make install 
popd 
popd 
sudo curl http://downloads.datastax.com/cpp-driver/centos/7/dependencies/libuv/v1.8.0/libuv-1.8.0-1.el7.centos.x86_64.rpm 
sudo curl http://downloads.datastax.com/cpp-driver/centos/7/dependencies/libuv/v1.8.0/libuv-devel-1.8.0-1.el7.centos.x86_64.rpm 
sudo curl http://downloads.datastax.com/cpp-driver/centos/7/cassandra/v2.4.3/cassandra-cpp-driver-2.4.3-1.el7.centos.x86_64.rpm 
sudo curl http://downloads.datastax.com/cpp-driver/centos/7/cassandra/v2.4.3/cassandra-cpp-driver-devel-2.4.3-1.el7.centos.x86_64.rpm 
sudo rpm -ivh libuv-1.8.0-1.el7.centos.x86_64.rpm 
sudo rpm -ivh libuv-devel-1.8.0-1.el7.centos.x86_64.rpm 
sudo rpm -ivh cassandra-cpp-driver-2.4.3-1.el7.centos.x86_64.rpm 
sudo rpm -ivh cassandra-cpp-driver-devel-2.4.3-1.el7.centos.x86_64.rpm 
sudo yum update 
sudo pecl install cassandra 
sudo yum update 
2

Я попытался установить драйвер Cassandra для PHP на Ubuntu 14.04.1 LTS для PHP 5.5.9 с использованием php-driver и cpp-driver следующим образом,

sudo apt-get install g++ clang make cmake libuv-dev libssl-dev git; 
git clone https://github.com/datastax/cpp-driver.git 
mkdir cpp-driver/build 
cd cpp-driver/build 
cmake .. 
make 

, а затем,

sudo apt-get install libgmp-dev php5 php5-dev openssl libpcre3-dev 
pecl install cassandra 

Но получил ошибку,

checking for supported DataStax C/C++ driver version... nawk: cannot open /include/cassandra.h (No such file or directory) 
configure: error: not supported. Driver version 2.4.2+ required (found) 
ERROR: /tmp/pear/temp/cassandra/configure' failed 

после преодоления,

cp cpp-driver/include/cassandra.h /usr/include/ 

снова получил еще один,

checking for cass_cluster_new in -lcassandra... no 
configure: error: Unable to load libcassandra 
ERROR: /tmp/pear/temp/cassandra/configure' failed 

После этого много исследований, я получил следующее простое решение,

sudo wget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies/libuv/v1.8.0/libuv_1.8.0-1_amd64.deb 
sudo wget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/dependencies/libuv/v1.8.0/libuv-dev_1.8.0-1_amd64.deb 
sudo wget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra/v2.5.0/cassandra-cpp-driver-dev_2.5.0-1_amd64.deb 
sudo wget http://downloads.datastax.com/cpp-driver/ubuntu/14.04/cassandra/v2.5.0/cassandra-cpp-driver_2.5.0-1_amd64.deb 
sudo dpkg -i libuv_1.8.0-1_amd64.deb 
sudo dpkg -i libuv-dev_1.8.0-1_amd64.deb 
sudo dpkg -i cassandra-cpp-driver-dev_2.5.0-1_amd64.deb 
sudo dpkg -i cassandra-cpp-driver_2.5.0-1_amd64.deb 

Затем просто скопировать и включить расширение,

sudo vim /etc/php5/mods-available/cassandra.ini 
extension=cassandra.so; 
php5enmod cassandra