I'm trying to install the mongoDB-extension for php7. I started with a brand new installation of Ubuntu-Server 16.04.1. Pre-installed (while OS-installation) packages were LAMP-extension, OpenSSL and MySQL-server. This was installed on a local VirtualBox. It shall to be a development system which is configured equal for every developer.
First I installed MongoDB itself according to these instructions: install mongoDB on Ubuntu
After that, according to this second instruction: installing php7-mongoDB-client-driver,
I installed
- php-pear
- phpize
It can be recapped in
$sudo apt-get install php-pear phpize
because these two packages were flagged as missing when using
sudo pecl install mongodb
the first time.
Then I was suggested to install openssl-extension. About that I found an instruction which told me to execute these 3 commands:
$sudo apt-get install libssl-dev
$sudo apt-get install libcurl4-openssl-dev
$sudo apt-get install libcurl4-openssl-dev pkg-config libssl-dev libsslcommon2-dev
(the first package was already installed on my system)
after that
$php -m
should show "openssl" as a single point on the list.
Then I could finally execute
$sudo pecl install mongodb
This installation displayed four instructions at the end:
<Installing '/usr/lib/php/20151012/mongodb.so'>
<install ok: channel://pecl.php.net/mongodb-1.1.8>
<configuration option "php_ini" is not set to php.ini location>
<You should add "extension=mongodb.so" to php.ini>
So I executed:
$php -i | grep extension_dir
which should show up the same path as displayed in the first line.
$pear config-set php_ini /etc/php5/apache2/php.ini
$pecl config-set php_ini /etc/php5/apache2/php.ini
to follow the instructions of the third line.
Added extension=mongodb.so
to phpini at /etc/php/7.0/apache2/
to conform to line four.
And finally, after restarted apache2,
$php -i
should display the same version of mongodb similar in the second line.
After all of these steps I found one last package to install which is
$sudo apt-get install php-mongodb
But also this this didn't help.
To check if the extension is working I used either:
$m = new MongoClient(); OR
$m = new Mongo\Driver\Manager();
and then echo $m. I read that Mongo\Driver\Manager
is the new version but even with this code it doesn't work. It always tells me that the class "could not be found". Irrespective of the class I tried.
I hope this (hopefully) complete instruction can help someone with a similar problem about mongodb and php.
Additionally I hope that these information can help you to give me a hint what else I can do to fix that problem. Unfortunately I searched a long time but didn't found something to include this extension into this php-version. There where only part but I cant build them together.