2017-03-01 30 views
0

我執行XAMPP服務器上的下面的代碼: -類「卡桑德拉」用C未找到: XAMPP htdocs中的index.php

<?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文件在php-> ext文件夾中的xampp.I甚至嘗試了編寫命令使用Cassandra,但它沒用。 請幫我一把!

+0

您是否在'php.ini'中添加了'extension = php_cassandra.dll'? – Fero

+0

是的,我已經添加了該命令。我從 - http://downloads.datastax.com/php-driver/windows/cassandra/1.2.2/下載了預構建的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已被放置在xampp\php\ext目錄後,您將需要修改php.ini文件有以下:

[cassandra] 
extension=php_cassandra.dll 

要驗證擴展正確加載,你可以輸入以下任命令:

  • php -i | FINDSTR /C:"Cassandra support"
  • php -m並尋找cassandra模塊

注意:使用CCM爲Apache Cassandra v3.10和您的示例代碼創建單個節點羣集,但未發現任何問題。