2017-03-01 5 views
0

はindex.php私はXAMPPのサーバー上で次のコードを実行しています: -Cで見つからないクラス「カサンドラ」: xamppの htdocsに

<?php 
$cluster = Cassandra::cluster() 
      ->build(); 
$keyspace = 'system'; 
$session = $cluster->connect($keyspace);  
?> 

をしかし、私はエラーを取得する - クラス「カサンドラ」ではありませんC:\ xampp \ htdocs \ index.phpにあります:3スタックトレース:#0 {main}は、3行目のC:\ xampp \ htdocs \ index.phpにスローされました。

私はCassandra.dllファイルをコピーしましたxamppのphp-> extフォルダにあります。私はCassandraを使うコマンドを書こうとしましたが、それは役に立たなかったのです。 私を助けてください!

+0

'extension = php_cassandra.dll'を' php.ini'に追加しましたか? – Fero

+0

はいコマンドを追加しました。私は、http://downloads.datastax.com/php-driver/windows/cassandra/1.2.2/からprebuilt php_cassandra.dllをダウンロードしました。 – bunny

答えて

1

問題は、使用しているXAMPPバージョンのビルドバージョンが正しくないことが原因である可能性があります。 PHPのバージョン、アーキテクチャ、VCコンパイラ、スレッドの安全性(有効/無効)は、使用している拡張機能に合わせる必要があります。あなたは、次のコマンドを実行することができ、正確なニーズを判断するには:

  • php -i | FINDSTR /C:"PHP Version"
  • php -i | FINDSTR /C:"Architecture"
  • php -i | FINDSTR /C:"Compiler"
  • php -i | FINDSTR /C:"Thread Safety"
    • をTS =スレッドの安全性は=>
    • NTS =スレッドセーフを有効に=>無効

例として、私はPHP v7.0.15を利用したstandalone XAMPPをテストしました。 x86とTS(スレッドセーフティ=>有効)。アーカイブ命名規則に基づいて、php -iルックアップをスキップし、VC14コンパイラを使用してx86アーキテクチャを判断することができます。スレッドの安全性はアーカイブ名から明らかではありませんが、上記のコマンドを実行することで判断できます。この特定のXAMPPはTSである。

この情報で、この特定のXAMPPに必要なドライバアーカイブがcassandra-php-driver-1.2.2-7.0-ts-vc14-x86.zipであることがわかります。アーカイブがダウンロードされたとphp_cassandra.dllでは、次のとphp.iniファイルを変更する必要がありますxampp\php\extディレクトリに配置された後:

[cassandra] 
extension=php_cassandra.dll 

拡張子を確認するには、次のいずれかを入力することができ、正しくロードされていますコマンド:

  • php -i | FINDSTR /C:"Cassandra support"または
  • php -mcassandraモジュール
探し

注:CCMを使用して、Apache Cassandra v3.10用の単一ノードクラスタとサンプルコードを作成しても問題は見つかりませんでした。

関連する問題