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

Posted

技术标签:

【中文标题】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 【发布时间】:2019-09-06 06:12:51 【问题描述】:

我正在设置 square api,将其集成到客户端,现在在服务器端工作,但为此我需要使用 composer 管理依赖项,在安装 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: 无法打开共享对象 file: No such file or directory)) 在 Unknown on line 0

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

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

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

【问题讨论】:

您是否也安装了 DataStax C/C++ 驱动程序? PHP 驱动程序是 C/C++ 驱动程序中 C API 的包装器。 我还没有安装DataStax,在安装之前我想知道的是,这个扩展是在安装php时预嵌入/预安装的吗?(我只想知道这是因为,我的错误最近被发现)。为了检查是否已经安装,我使用了“php --re DataStax”命令并得到“异常:扩展 DataStax 不存在”消息,这是检查 DataStax 的正确方法吗? 【参考方案1】:

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

C/C++ driver libuv1.x OpenSSL v1.0.x 或 v1.1.x(取决于你的 PHP 是如何构建的) The GNU Multiple Precision Arithmetic Library

由于您在 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 能够加载的所有扩展/模块,而 php -i 将显示有关您的 PHP 安装配置的更详细信息。

【讨论】:

在 ../ext/configure 命令后我得到“configure: error: Unable to load libgmp” ,msg 这里有什么问题,我该如何加载 libgmp? 您需要安装 GNU 多精度算术库的开发库(例如 Debian/Ubuntu 上的 libgmp-dev 和 CentOS/RHEL 平台上的 gmp-devel)。

以上是关于PHP 警告:PHP 启动:无法加载动态库“cassandra.so”(已尝试:/usr/lib/php/20170718/cassandra的主要内容,如果未能解决你的问题,请参考以下文章

Composer 安装“PHP 警告:PHP 启动:无法加载动态库 'gd2'”

PHP 警告:PHP 启动:无法加载动态库

PHP 警告:PHP 启动:无法加载动态库

PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php/20151012/mysql.so'

PHP 警告:PHP 启动:无法加载动态库 imagic.so

PHP 警告:PHP 启动:无法加载动态库 '\xampp\php\ext\php_mailparse.dll' - 找不到指定的模块