0
votes

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!

2
Does the file mongodb.so exist in the extension dir? Because the error says it does not. - Daniel W.
If you mean /usr/local/php72/lib/php/extensions/no-debug-non-zts-20170718/, No! there are just two files, opcache.a and opcache.so - Behnam Azimi
Yea so fix your extension_dir configuration and put the .so files in the appropriate folder, problem solved. - Daniel W.
I really don't know how should I do! where is the extension .so file, what do you mean fix! - Behnam Azimi
The mongodb.so file is installed in the extensions dir which is the one before you changed it..... what folders are in /usr/local/php72/lib/php/extensions ? Or simply use find and search for the file - Daniel W.

2 Answers

1
votes

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
0
votes

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