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

PHP Warning: PHP Startup: Unable to load dynamic library 'cassandra.so' (tried: /usr/lib/php/20170718/cassandra

我正在设置 Square api,将其集成到客户端,现在在服务器端工作,但为此我需要使用 composer 管理依赖项,在安装 Composer 时出现上述错误.

我正在安装 composer,当我 运行 composer install,安装了 composer 但我还收到了 PHP 警告,即

PHP Warning: PHP Startup: Unable to load dynamic library 'cassandra.so' (tried: /usr/lib/php/20170718/cassandra.so (/usr/lib/php/20170718/cassandra.so: cannot open shared object file: No such file or directory), /usr/lib/php/20170718/cassandra.so.so (/usr/lib/php/20170718/cassandra.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0

我用谷歌搜索并尝试了所有已经完成的解决方案,但 none 对我的有效。我试过:

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

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

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

由于您在 PHP v7.2 中使用 PHP 驱动程序,因此您需要构建扩展,因为它们不是此版本 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 能够加载的所有 extension/modules 而 php -i 将显示有关您的 PHP 安装配置的更多详细信息.