一、cassandra-php扩展
1、cassandra扩展依赖库:
- The C/C++ driver and its dependencies.
- The GNU Multiple Precision Arithmetic Library.
- Libuv
使用homebrew安装依赖
brew install libuv cmake gmp git
使用apt-get安装
sudo apt-get install g++ make cmake libuv-dev libssl-dev libgmp-dev php5 php5-dev openssl libpcre3-dev git
使用yum安装
sudo yum install automake cmake gcc gcc-c++ git libtool openssl-devel wget gmp gmp-devel boost php-devel pcre-devel
pushd /tmp
wget http://dist.libuv.org/dist/v1.11.0/libuv-v1.11.0.tar.gz
tar xzf libuv-v1.11.0.tar.gz
pushd libuv-v1.11.0
sh autogen.sh
./configure
sudo make install
popd
编译安装cpp-driver (依赖包参照官方文档安装 DataStax C/C++ Driver for Apache Cassandra )
sudo yum -y install epel-release
git clone https://github.com/datastax/cpp-driver.git
mkdir cpp-driver/build
cd cpp-driver/build
cmake ..
make
make install
2、 pecl安装 cassandra 扩展 :
若没有pecl命令,需要先将/opt/lampp/bin/ 目录添加至环境变量
sudo vi /etc/profile
添加 export PATH=/opt/lampp/bin/:$PATH
source /etc/profile
whereis pecl
pecl: /opt/lampp/bin/pecl
执行命令安装cassandra
pecl install cassandra
安装成功后将extension=cassandra.so 添加至 php.ini
加载成功后可在phpinfo中查看配置:
cassandra.so 无法成功加载问题
1、PHP Warning: PHP Startup: Unable to load dynamic library ‘/opt/lampp/lib/php/extensions/no-debug-non-zts-20151012/cassandra.so’ - libcassandra.so.2: cannot open shared object file: No such file or directory in Unknown on line 0
这个问题是缺少/usr/local/lib64/libcassandra.so.2文件,经查找发现/usr/lib64/libcassandra.so.2存在,创建软件接至lib64中,问题解决
ln -s /usr/local/lib64/libcassandra.so.2 /usr/lib64/libcassandra.so.2
2、 PHP Warning: PHP Startup: Unable to load dynamic library ‘/opt/lampp/lib/php/extensions/no-debug-non-zts-20151012/cassandra.so’ - /opt/lampp/lib/libstdc++.so.6: version `GLIBCXX_3.4.15’ not found
问题是lampp自带的 libstdc++.so.6 缺少版本 GLIBCXX_3.4.15,同样在/usr/lib64/中发现也有 libstdc++.so.6 文件,使用下面命令检查后, usr/lib64中的版本较高, 将lampp中的替换后 问题解决
strings /opt/lampp/lib/libstdc++.so.6 | grep GLIBC

本文档详细介绍了如何为PHP安装Cassandra扩展的过程,包括所需依赖库的安装步骤,如Libuv、GNU MP等,并提供了不同包管理器的命令。此外,还解决了扩展加载过程中可能遇到的问题。
2600

被折叠的 条评论
为什么被折叠?



