无法加载动态库'mongodb.so'-Debian 8,PHP 7.2

时间:2018-06-28 08:34:15

标签: php mongodb php-7.2

我有一个带Debian 8 OS的VPS和一个带PHP7.2的DirectAdmin面板

要使用MongoDB PHP驱动程序,我使用命令sudo pecl install mongodb安装了它。

安装后,我通过以下命令将驱动程序扩展添加到php.ini文件中:

echo "extension=mongodb.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||" 

但是似乎未安装驱动程序!因为当我执行PHP命令时,会遇到以下警告:

  

PHP警告:PHP启动:无法加载动态库'mongodb.so'   (尝试:   /usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so   (/usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so:   无法打开共享对象文件:无此类文件或目录),   /usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so.so   (/usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so.so:   无法打开共享对象文件:无此类文件或目录))   在第0行

一切正常,在我的本地(Windows)中,我将非线程安全(NTS)驱动程序扩展添加到extensions目录,就一切了!

我做错了什么? 在DirectAdmin的PHP上安装MongoDB驱动程序是否与在普通的PHP上安装不同?

更新

MongoDB也不是phpinfo();的结果!

2 个答案:

答案 0 :(得分:1)

请确保php扩展目录为: /usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/

检查:

php -i |grep extension_dir

如果没有,则有两种选择:

  1. extension_dir中的php.ini修改为 /usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/
  2. echo "extension=/full_path_through_pecl_installed/mongodb.so" > php.ini

答案 1 :(得分:0)

问题与DirectAdmin有关,因为它具有自己的PHP,并且必须添加扩展名。

当我运行sudo pecl install mongodb时,它会查找默认的VPS PHP。

此命令解决了我的问题:

cp /usr/lib/php/20170718/mongodb.so /usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/mongodb.so