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

我有一个使用Debian 8操作系统的VPS和一个带有PHP7.2的DirectAdmin面板</ p>

要使用MongoDB PHP驱动程序,我使用命令 sudo pecl install mongodb </ code>安装它。</ p>

安装完成后,我将驱动程序扩展添加到php 此命令的.ini文件:</ p>

  echo“extension = mongodb.so”&gt;&gt;  `php --ini |  grep“加载配置”|  sed -e“s |。*:\ s * ||”

</ code> </ pre>

但似乎没有安装驱动程序! 因为当我执行PHP命令时,面对此警告:</ p>


PHP警告:PHP启动:无法加载动态库'mongodb.so'
(尝试:\ n /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上未知
</ p>
</ blockquote>

在我的本地(窗口)中一切正常,我添加非线程安全(NTS)</ em>驱动程序 扩展到扩展目录,这就是全部!</ p>

我做错了什么?
在DirectAdmin的PHP上安装MongoDB驱动程序与普通PHP上的安装有什么不同?</ p> \ n

更新:</ strong> </ p>

MongoDB不在结果中 phpinfo(); </ code>也是!</ p>
</ div>

展开原文

原文

I have a VPS with Debian 8 OS and a DirectAdmin panel with PHP7.2

To use MongoDB PHP driver, I installed it with the command sudo pecl install mongodb.

After that installation, I added the driver extension to the php.ini file by this command:

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

But it seems that driver not installed! Because when I exec a PHP command, face this warning:

PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /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: cannot open shared object file: No such file or directory), /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: cannot open shared object file: No such file or directory)) in Unknown on line 0

Everything is ok in my local (windows), I add the Non Thread Safe (NTS) driver extension to the extensions directory, and It's all!

What I did wrong? Is installation of MongoDB driver on the PHP of DirectAdmin different from installation on a normal PHP?

Update:

MongoDB is not in the result of phpinfo(); too!

doureng6738
doureng6738 我只是按了Enter键并让它默认。我没看到你说的话
2 年多之前 回复
dongshui2254
dongshui2254 当您通过peclsudopeclinstallmongodb安装时,它会告诉您它安装到的位置
2 年多之前 回复
doumi1884
doumi1884 但我以前没改过它!只有no-debug-non-zts-20170718在提到的目录中!
2 年多之前 回复
dra8603
dra8603 如果文件不存在并且你更改了扩展名dir文件夹,你甚至期望它如何工作,当然mongodb没有加载。
2 年多之前 回复
doukang7858
doukang7858 mongodb.so文件安装在扩展名dir中,这是你更改之前的文件...../usr/local/php72/lib/php/extensions中的文件夹是什么?或者只是使用find并搜索文件
2 年多之前 回复
douzhang8144
douzhang8144 我真的不知道该怎么办!扩展名.so文件在哪里,你的意思是什么修复!
2 年多之前 回复
dongluo1853
dongluo1853 是的,所以修复你的extension_dir配置并将.so文件放在适当的文件夹中,问题解决了。
2 年多之前 回复
douwen7905
douwen7905 如果你的意思是/usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/,不!只有两个文件,opcache.a和opcache.so
2 年多之前 回复
donglvlao8367
donglvlao8367 文件mongodb.so是否存在于扩展名dir中?因为错误说没有。
2 年多之前 回复

2个回答



请确保php扩展名为:
/ usr / local / php72 / lib / php / extensions / no- debug-non-zts-20170718 / </ code> </ p>

检查:</ p>

  php -i | grep extension_dir 
</ code > </ pre>

如果没有,有两个选项可供选择:</ p>


  1. 修改 extension_dir </ code> < 代码> php.ini </ code>到
    / usr / local / php72 / lib / php / extensions / no-debug-non-zts-20170718 / </ code> </ li>
  2. echo“extension = / full_path_through_pecl_installed / mongodb.so”&gt;
    php.ini </ code> </ li>
    </ ol>
    </ div>

展开原文

原文

Please make sure php extension dir is: /usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/

Check:

php -i |grep extension_dir

If not, there are two options to do it:

  1. modify extension_dir in php.ini to /usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/
  2. echo "extension=/full_path_through_pecl_installed/mongodb.so" > php.ini

dongyi9082
dongyi9082 我该如何检查? 以及phpinfo和该命令的值是相等的
2 年多之前 回复
dongmouhao7438
dongmouhao7438 fpm和php(cli)可能使用不同的php.ini
2 年多之前 回复
duanke9540
duanke9540 在那个警告之后,这是我的结果:extension_dir => / usr / local / php72 / lib / php / extensions / no-debug-non-zts-20170718 => / usr / local / php72 / lib / php / extensions / no -debug-non-zts-20170718 sqlite3.extension_dir =>没有值=>没有值
2 年多之前 回复
douju4594
douju4594 按照您的更新,请确保php -i | grep extension_dir和phpinfo()的结果相同。 顺便说一下,确保php cli php.ini和fpm php.ini是同一个文件。
2 年多之前 回复
dongzhizhai4070
dongzhizhai4070 位置正是你提到的。 但是如何检查MongoDB扩展名是否在那里或任何其他应该有效的目录? 它只是该目录中的两个文件
2 年多之前 回复



问题与DirectAdmin有关,因为它有自己的PHP,必须在其上添加扩展。 </ p>

当我运行 sudo pecl install mongodb </ code>时,它会查看默认的VPS PHP。</ p>

此命令解决了我的问题: </ p>

  cp /usr/lib/php/20170718/mongodb.so / usr / local / php72 / lib / php / extensions / no-debug-non-zts-20170718 /  mongodb.so 
</ code> </ pre>
</ div>

展开原文

原文

The issue was about DirectAdmin because it has its own PHP and extensions must add on it.

When I run sudo pecl install mongodb, It looks out default VPS PHP.

This command solved my problem:

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐