0

ich die DataStax cassandra Treiber Erweiterung für PHP installiert haben folgendes Verfahren:Ausgabe mit DataStax Cassandra-Treiber für PHP auf CentOS 6.7: undefined Symbol: cass_cluster_set_whitelist_dc_filtering in Unknown on line 0

  • installiert Abhängigkeiten: auto Cmake gcc gcc-C++ git libtool openssl-devel wget gmp gmp-devel boost php-devel pcre-devel git libuv
  • installiert cpp-Treiber gmp von von der Quelle kompilieren
  • Installierte PHP DataStax cassandra Treiber von der Quelle
  • Added Erweiterung in der /etc/php.ini Datei

Wenn ich versuche, die PHP-Datei auszuführen, zu dem cassandra Cluster zu verbinden, erhalte ich die folgenden Fehler:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib64/php/modules/cassandra.so' 
- /usr/lib64/php/modules/cassandra.so: undefined symbol: cass_cluster_set_whitelist_dc_filtering in Unknown on line 0 

I Ich habe versucht, die Binärdateien stattdessen erneut zu installieren, und ich stehe immer noch vor dem gleichen Problem. Hier

ist der LDD-Ausgang:

ldd /usr/lib64/php/modules/cassandra.so 
    linux-vdso.so.1 => (0x00007ffe9ad9a000) 
    libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x00007f2377ca2000) 
    libssl.so.10 => /usr/lib64/libssl.so.10 (0x00007f2377a35000) 
    libz.so.1 => /lib64/libz.so.1 (0x00007f237781f000) 
    libuv.so.1 => /usr/lib64/libuv.so.1 (0x00007f23775fe000) 
    librt.so.1 => /lib64/librt.so.1 (0x00007f23773f5000) 
    libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f23771d8000) 
    libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f2376fbf000) 
    libdl.so.2 => /lib64/libdl.so.2 (0x00007f2376dba000) 
    libm.so.6 => /lib64/libm.so.6 (0x00007f2376b36000) 
    libstdc++.so.6 => /usr/lib64/libstdc++.so.6 (0x00007f2376830000) 
    libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f2376619000) 
    libc.so.6 => /lib64/libc.so.6 (0x00007f2376285000) 
    libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007f2376041000) 
    libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007f2375d59000) 
    libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00007f2375b55000) 
    libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00007f2375929000) 
    libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00007f2375544000) 
    /lib64/ld-linux-x86-64.so.2 (0x00000030d4a00000) 
    libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00007f2375339000) 
    libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00007f2375135000) 
    libresolv.so.2 => /lib64/libresolv.so.2 (0x00007f2374f1b000) 
    libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f2374cfb000) 

Vielen Dank für Ihre Hilfe.

Antwort

0

Es scheint, dass Sie möglicherweise die falsche Version des cpp-Treibers für die Erweiterung php-driver verwenden. Momentan zeigt das cpp-driver-Submodul auf dem php-driver-Master auf v2.2.2, während die Blacklist-, Whitelist DC- und blacklist-DC-Load-Balancing-Richtlinien in v2.3.0 hinzugefügt wurden.

Wir empfehlen, die neueste Version des cpp-Treibers zu erstellen und zu installieren und dann die Build- und Installationsschritte für die von Ihnen verwendete php-driver-Quelle erneut durchzuführen.

+0

HI Fero, ich habe die alte entfernt und den neuen CPP-Treiber installiert ** 'rpm -qa | grep cassandra-cpp-driver * cassandra-cpp-driver-devel-2.3.0-1.el6.x86_64 cassandra-cpp-driver-2.3.0-1.el6.x86_64' ** und den php-treiber neu aufbauen von der Quelle, aber immer noch kein Glück. Was vermisse ich? – Piyush

+0

@Piyush: Ich habe eine Neuinstallation von CentOS 6.7 [x64] mit dem DataStax C/C++ - Treiber [v2.3.0] (http://downloads.datastax.com/cpp-driver/centos/6/v2.3.0/) durchgeführt.) und libuv [v1.8.0] (http://downloads.datastax.com/cpp-driver/centos/6/dependencies/libuv/v1.8.0/) RPM-Abhängigkeiten gefolgt von der Ausführung des Build-Prozesses für den DataStax-PHP-Treiber [ v1.1.0] (https://github.com/datastax/php-driver/tree/v1.1.0). Ich habe ein Vagrant-Skript [gist] (https://gist.github.com/mikefero/a4c76a1dcce6ccae38f5c22bc00f57b2) erstellt, das Sie verwenden können, um Sie bei Ihren Build-Problemen zu unterstützen. – Fero