PHP警告:PHP启动:无法加载动态库'cassandra.so'(尝试:/ usr / lib / php / 20170718 / cassandra

时间:2019-04-16 07:50:32

标签: php cassandra ubuntu-18.04 php-7.2

我正在设置方形api,将其集成到客户端,现在在服务器端工作,但是为此,我需要在安装作曲家时使用composer管理依赖项。

我正在安装composer,当我运行composer install时,就安装了composer,但除此之外,我还收到了PHP警告

  

PHP警告:PHP启动:无法加载动态库   'cassandra.so'(尝试:/usr/lib/php/20170718/cassandra.so   (/usr/lib/php/20170718/cassandra.so:无法打开共享对象文件:   没有此类文件或目录),/ usr / lib / php / 20170718 / cassandra.so.so   (/usr/lib/php/20170718/cassandra.so.so:无法打开共享对象   文件:没有此类文件或目录)),位于第0行的未知中

我用谷歌搜索并尝试了所有已经完成的解决方案,但都没有找到解决方案。我尝试过:

  1. 要在/etc/php/7.2/cli中的php.ini上找到卡桑德拉,但我没有找到它。
  2. 要在sudo apt-get install php-cassandra中使用命令/usr/lib/php/20170718安装Cassandra,但仍然显示相同的错误。
  3. 更新和升级Ubuntu,以确保没有内部错误(如果有的话)?

我希望安装cassandra并动态加载它。

1 个答案:

答案 0 :(得分:0)

DataStax PHP驱动程序扩展是C / C ++驱动程序的包装,并且需要installation的所有依赖项:

由于您将PHP驱动程序与PHP v7.2一起使用,因此您将需要构建扩展,因为它们不是此版本PHP的预构建二进制文件:

git clone https://github.com/datastax/php-driver.git
cd php-driver/ext
phpize
cd ..
mkdir build
cd build
../ext/configure
make
sudo make install

注意:为了正确构建扩展,需要所有依赖项的开发包。

安装驱动程序后,您将需要编辑php.ini文件以启用可以通过执行php -r "echo php_ini_loaded_file();"找到的扩展名:

; DataStax PHP Driver for Apache Cassandra
extension=cassandra.so

要确保通过CLI正确加载驱动程序,可以执行以下操作:

php -m | grep cassandra

php -i | grep -A 10 "^cassandra$"

php -m将打印出PHP能够加载的所有扩展/模块,而php -i将显示有关PHP安装配置的更多详细信息。