今天是个好日子。
通常我只是在 *nix OS 中使用这个Official Docs
但是现在我使用的是 MacOs,这个说明不能正常工作。
如果pecl install cassandra
我收到此消息:
checking for supported DataStax C/C++ driver version... awk: can't open file /include/cassandra.h
source line number 1
configure: error: not supported. Driver version 2.4.2+ required (found )
ERROR: `/private/tmp/pear/install/cassandra/configure --with-php-config=/usr/bin/php-config' failed
我的逻辑告诉我,在这种情况下,我需要自己制作 DataStax C/C++ 驱动程序。在文件夹中php-driver\lib
,我删除cpp-driver
并使用此指令使新的和新鲜的 C/C++ 驱动程序没有错误。
所以在官方文档中它说:
注意 install.sh 脚本还将编译并静态链接到扩展中,这是用于 Apache Cassandra 的 DataStax C/C++ 驱动程序的子模块版本。要使用系统上已有的 cpp 驱动程序版本,请运行 phpize、./configure 并进行安装。
但是当我试图从中运行时./configure
,php-drive/ext
我得到了几乎相同的错误:
checking for supported DataStax C/C++ driver version... awk: can't open file /include/cassandra.h
source line number 1
configure: error: not supported. Driver version 2.4.2+ required (found )
即使我继续并且在该错误运行之后make install
它会给我该日志:
/bin/sh /Users/antvirgeo/php-driver/ext/libtool --mode=install cp ./cassandra.la /Users/antvirgeo/php-driver/ext/modules
cp ./.libs/cassandra.so /Users/antvirgeo/php-driver/ext/modules/cassandra.so
cp ./.libs/cassandra.lai /Users/antvirgeo/php-driver/ext/modules/cassandra.la
----------------------------------------------------------------------
Libraries have been installed in:
/Users/antvirgeo/php-driver/ext/modules
If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `DYLD_LIBRARY_PATH' environment variable
during execution
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Installing shared extensions: /usr/lib/php/extensions/no-debug-non-zts-20121212/
cp: /usr/lib/php/extensions/no-debug-non-zts-20121212/#INST@24727#: Operation not permitted
make: *** [install-modules] Error 1
库已安装在:
/Users/antvirgeo/php-driver/ext/modules
即使我将带有该路径的 cassandra 扩展添加到 php.ini 我Class 'Cassandra\SimpleStatement' not found
的项目中仍然出现错误。
php -d="extension=modules/cassandra.so" -m
cassandra
在 PHP 模块列表中显示
我究竟做错了什么?
PS:我在 Parallels 中有 ubuntu 操作系统,这个项目安装了 DataStax php 驱动程序,安装了这个说明工作正常。
____upd:在没有任何错误的@Fero的所有指令之后,命令/usr/local/bin/php -i | grep -A 10 "^cassandra$"
向我显示:
cassandra
Cassandra support => enabled
C/C++ driver version => 2.4.2
Persistent Clusters => 0
Persistent Sessions => 0
Directive => Local Value => Master Value
cassandra.log => cassandra.log => cassandra.log
cassandra.log_level => ERROR => ERROR
仍然是同样的错误 -Class 'Cassandra\SimpleStatement' not found
______________最后更新:
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!我在我的项目中编写了输出phpinfo();
,并意识到 apache 使用其他 php 版本php.ini
,并且根本没有extension=cassandra.so
。