我在这里仔细阅读了所有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但也无法正常工作。
它有什么用?
答案 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