【问题标题】:PHP-Driver DataStax Cassandra DB - How to use?PHP-Driver DataStax Cassandra DB - 如何使用?
【发布时间】:2016-07-31 23:17:40
【问题描述】:

我的安装过程如下:

系统

PHP 7.0.5-1~dotdeb+8.1 (cli) (NTS)

Debian 8

Nginx 1.8.1

Laravel 5.2

Java 安装

mkdir -p /usr/lib/jvm
wget URL to Oraclesite
mv mv jdk-8u77-linux-x64.tar.gz\?... jdk-8u77-linux-x64.tar.gz
tar xzf jdk-8u77-linux-x64.tar.gz
rm jdk-8u77-linux-x64.tar.gz
update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_version/bin/java" 1
update-alternatives --set java /usr/lib/jvm/jdk1.8.0_version/bin/java

安装需要的包

apt install cmake automake libtool git php7.0-dev libgmp-dev libssl-dev

Libuv 安装

cd /tmp
wget http://dist.libuv.org/dist/v1.7.5/libuv-v1.7.5.tar.gz
tar xzf libuv-v1.7.5.tar.gz
rm libuv-v1.9.0.tar.gz
cd libuv-v1.7.5
sh autogen.sh
./configure
make
make install
ldconfig

安装 Cassandra Datatrax

echo "deb http://debian.datastax.com/community stable main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list
curl -L http://debian.datastax.com/debian/repo_key | sudo apt-key add -
apt install cassandra dsc30

检查服务

service cassandra status

cassandra.service - LSB:结构化的分布式存储系统 已加载数据:已加载 (/etc/init.d/cassandra) 活动:活动 (运行)自 2016 年 4 月 11 日星期一 01:11:04 CEST 起; 19 分钟前 进程:506 ExecStart=/etc/init.d/cassandra start (code=exited, status=0/SUCCESS) CGroup:/system.slice/cassandra.service

nodetool status

数据中心:datacenter1 =======================状态=上/下|/状态=正常/离开/加入/移动 -- 地址加载令牌拥有(有效)主机 ID 机架 UN 127.0.0.1 139.06 KB 256 100.0%
1ab0e99a-41a5-4007-b9ca-de58dc88e318 机架1

cqlsh

在 127.0.0.1:9042 连接到测试集群。 [cqlsh 5.0.1 |卡桑德拉 3.0.4 | CQL 规范 3.4.0 |本机协议 v4] 使用 HELP 寻求帮助。

安装php-driver (PECL 安装不起作用。我认为这是因为只有 php7 设置)

git clone https://github.com/datastax/php-driver.git
cd php-driver
git submodule update --init
cd ext
./install.sh
make test -> all tests passed

将驱动程序添加到 PHP 扩展

echo -e "; DataStax PHP Driver\nextension=cassandra.so" >> /etc/php/7.0/cli/php.ini

// UPDATE - added extension to fpm/php.ini file.
echo -e "; DataStax PHP Driver\nextension=cassandra.so" >> /etc/php/7.0/fpm/php.ini

重启nginx和php7.0-fpm

service nginx restart
service php7.0-fpm restart

问题:

如果我想使用下面的代码,它会说我找不到类 Cassandra。 网页:https://github.com/datastax/php-driver#datastax-php-driver-for-apache-cassandra

$cluster = Cassandra::cluster()->build();

感谢您的帮助。

【问题讨论】:

    标签: nginx cassandra debian php-7 nosql


    【解决方案1】:

    由于您尝试使用 nginx+fpm 执行 PHP 脚本,您需要更新相应的 php.ini 文件(例如 /etc/php7/fpm/php.ini)。

    将驱动模块添加到您的 nginx+fpm 安装中

    echo -e "; DataStax PHP Driver\nextension=cassandra.so" >> /etc/php/7.0/fpm/php.ini
    

    为确保通过 CLI 正确加载驱动程序,您可以执行以下操作:

    php -m | grep cassandra
    

    php -i | grep -A 10 "^cassandra$"
    

    php -m 将打印出 PHP 能够加载的所有扩展/模块,而 php -i 将显示有关您的 PHP 安装配置的更详细信息。

    【讨论】:

      【解决方案2】:

      更新 1

      当我执行以下 2 个命令时,我得到以下两个结果,看起来相当成功。

      php -m | grep cassandra

      卡桑德拉

      php -i | grep -A 10 "^cassandra$"

      卡桑德拉

      Cassandra 支持 => 启用 C/C++ 驱动程序版本 => 2.2.2 Persistent 集群 => 0 个持久会话 => 0

      指令 => 本地值 => 主值 cassandra.log => cassandra.log => cassandra.log cassandra.log_level => 错误 => 错误

      但仍然是 no class Cassandra 的错误。

      更新 2

      现在一切正常。

      php > $cluster = Cassandra::cluster()->build(); 
      php > var_dump($cluster); 
      object(Cassandra\DefaultCluster)#2 (0) { } 
      php >
      

      【讨论】:

        猜你喜欢
        • 2016-12-11
        • 2014-04-22
        • 2021-11-21
        • 2020-10-20
        • 2018-04-18
        • 2020-07-14
        • 2023-03-22
        • 2013-11-09
        • 2018-01-20
        相关资源
        最近更新 更多