我有一个带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();
的结果!
答案 0 :(得分:1)
请确保php扩展目录为:
/usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/
检查:
php -i |grep extension_dir
如果没有,则有两种选择:
extension_dir
中的php.ini
修改为
/usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/
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