PHP Cassandra模块不工作


PHP Cassandra module not working

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

我的问题是:

我使用Xubuntu、apache2和php5。Cassandra本身已安装并工作,Cassandra服务正在运行,Cassandra cpp已安装。命令

pecl install cassandra

工作正常,物理上存在cassandra.so。当我在php.ini中添加extension=cassandra.so时,Apache在启动时崩溃。当我尝试运行时

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

它返回:

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

我尝试添加"php.ini"中不存在的扩展(如extension = sdbcibsdbc.so),但它只是被忽略了,所以问题不在错误或其他方面——cassandra.so会崩溃。同样,以前的版本(cassandra-1.0.0)只是被忽略了,没有崩溃Apache,但也不起作用。

它可能是什么?

我解决了问题,但细节仍不清楚。这种情况下,当你可以安装cassandra php驱动程序,但不能添加到"php.ini"中时,意味着一些C++驱动程序依赖关系没有得到解决,在我的情况下是libuv。不知道怎么可能:没有libuv的libuv-dev,以及为什么pecl不会抛出错误
我删除了libuv 1.8.0并安装了1.7.5,一切都好!然后我再次尝试1.8.0,它也起作用
所以,我可能错过了安装过程中的某个步骤,但它没有出现错误或警告
和往常一样,大多数问题都会随着小心的重新安装而消失。

安装Cassandra后,必须将extension=casandra.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