PHP Cassandra模块无法正常工作

时间:2016-04-05 07:14:37

标签: php cassandra

我在这里仔细阅读了所有Q& A约2天,但无法解决我的问题,所以请不要说我应该阅读前20个搜索字符串中的内容。

我的问题是:

我使用Xubuntu,apache2和php5。 Cassandra本身安装和工作,cassandra服务正在运行,cassandra cpp安装。 指挥

pecl install cassandra

工作正常,身体cassandra.so存在。当我在extension=cassandra.so Apache崩溃时添加php.ini。 当我尝试运行

php -r " Cassandra::cluster()->build();"<br> 

它返回:

PHP Fatal error:  Class 'Cassandra' not found in Command line code on line 1

我尝试添加&#39; php.ini&#39;中不存在的扩展程序(如extension = sdbcibsdbc.so),但它只是被忽略,因此问题不在于错误或其他问题 - cassandra.so会导致崩溃。此外版本(cassandra-1.0.0)也被忽略了,不会崩溃Apache但也无法正常工作。

它有什么用?

2 个答案:

答案 0 :(得分:0)

我解决问题,但细节仍不清楚。 这种情况,当你可以安装cassandra php驱动程序但无法添加到&#39; php.ini&#39;意味着一些C ++驱动程序依赖不能解决,在我的例子中它是libuv。不知道怎么可能:没有libuv的libuv-dev以及为什么pecl不会抛出错误 我删除libuv 1.8.0并安装1.7.5 - 一切OK!然后我再次尝试1.8.0它也可以工作。
所以,我可能会错过安装过程中的一些步骤,但它没有错误或警告。
一如既往,小心地重新安装大多数问题都会消失。

答案 1 :(得分:0)

在安装Cassandra之后,必须将extension = cassandra.so添加到php.ini中以启用它:

Build process completed successfully
Installing '/opt/rh/rh-php71/root/usr/lib64/php/modules/cassandra.so'
install ok: channel://pecl.php.net/cassandra-1.3.2
configuration option "php_ini" is not set to php.ini location
You should add "extension=cassandra.so" to php.ini