【发布时间】:2018-12-07 06:17:48
【问题描述】:
我有一个带有 Debian 8 操作系统的 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)中一切正常,我将 Non Thread Safe (NTS) 驱动程序扩展添加到扩展目录,就这样!
我做错了什么? DirectAdmin 的 PHP 上安装 MongoDB 驱动和普通 PHP 上安装有区别吗?
更新:
MongoDB 也不在phpinfo(); 的结果中!
【问题讨论】:
-
文件
mongodb.so是否存在于扩展目录中?因为错误表明它没有。 -
如果你的意思是
/usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/,不!只有两个文件,opcache.a和opcache.so -
是的,所以修复您的
extension_dir配置并将.so文件放在适当的文件夹中,问题就解决了。 -
我真的不知道该怎么办!
.so文件的扩展名在哪里,修复是什么意思! -
mongodb.so文件安装在您更改它之前的扩展目录中...../usr/local/php72/lib/php/extensions中有哪些文件夹?或者干脆使用find搜索文件