2015-10-07 28 views

risposta

7

Si manca il driver C++ Cassandra. Ho incontrato lo stesso problema su Ubuntu 14.04. Ho fatto quanto segue e ha funzionato per me:

Prerequisiti (Ubuntu 14.04):

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

Scarica i seguenti pacchetti:

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 

installarli in questo ordine usando 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 

Si dovrebbe essere in grado di installare cassandra utilizzando pecl. Non dimenticare di aggiungere extension=cassandra.so al file php.ini e riavviare il processo php.

Sulla base di una risposta nella discussione che hai collegato in precedenza.

+0

Come si può risolvere il problema su os x? –

+0

Non ho familiarità con os x. Ma non riesco a vedere i file del pacchetto per osx, quindi suppongo che dovresti creare e installare questi pacchetti [libuv, cassandra-cpp-driver] dai sorgenti –

+0

Per ubuntu 14.0 puoi usare i seguenti link –

2

Ecco come ho preso a lavorare (su 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

Per la macchina PHP ufficiale del 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 

quindi riavviare il contenitore (docker-compose restart ~~image~fpm~~).

1

per Ubuntu 14.04: Procedura di installazione sono:

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 /> 

Questo è tutto. :)

1

Per la procedura CentOS 7. installazione sono:

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

Ho provato a installare il driver Cassandra per PHP su Ubuntu 14.04.1 LTS per PHP 5.5.9 utilizzando php-driver e cpp-driver come segue,

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 

e poi,

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

ma ho ottenuto un errore,

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 

dopo coping,

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

ancora ottenuto un altro,

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

Dopo aver fatto molte ricerche, ho ottenuto seguente soluzione semplice,

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 

Poi basta copiare e attivare l'estensione,

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