You think this is to complicated? You use Ubuntu 14 or 16? use this:
sudo apt-get install php-mongodb
This installs everything you need to use MongoDB inside PHP.
Don't stop using MongoDB, is the best that will happen to you.
You're Welcome.
Разработчики драйверов и людей заинтересованные в самых свежих версиях, могут собрать драйвер из исходных кодов, которые находятся тут: » GitHub. Запустите следующие команды для клонирования и сборки проекта:
$ git clone https://github.com/mongodb/mongo-php-driver.git $ cd mongo-php-driver $ git submodule update --init $ phpize $ ./configure $ make all $ sudo make install
Если в вашей системе установлено несколько версий PHP (например, для macOS установка по умолчанию, Homebrew, » XAMPP), обратите внимание, что у каждой версии PHP есть своя команда phpize и php.ini файл(ы). Кроме того, каждое окружение PHP (например, CLI, web) может использовать отдельные php.ini файлы.
По умолчанию драйвер будет использовать встроенную версию
» libbson,
» libmongoc и » libmongocrypt и попытается
настроить их самостоятельно. Если эти библиотеки уже установлены в
системе, вы можете сообщить драйверу об этом с помощью аргумента
--with-libbson=yes --with--libmongoc=yes
команды
configure
. Начиная с версии 1.7.0 модуля, эти аргументы устарели, и вы должны использовать вместо них --with-mongodb-system-libs=yes
.
Полный список опций команды configure
можно получить с
помощью configure --help.
При использовании встроенных версий libbson и libmongoc, драйвер также
попытается выбрать библиотеку SSL в соответствии с опцией
--with-mongodb-ssl
команды
configure
. По умолчанию это
--with-mongodb-ssl=auto
, что приведёт к поиску в таком
порядке: Secure Transport (только macOS), OpenSSL, LibreSSL.
Также вы можете явно указать openssl
,
libressl
или darwin
.
Замечание:
Если процесс установки не сможет найти библиотеку SSL, убедитесь, что установлены разработческие пакеты (такие как
libssl-dev
) и пакет » pkg-config.При использовании Homebrew для macOS, обычна ситуация, когда установлено несколько разных версий OpenSSL. Для использования именно той версии, которая вам нужна, соответствующим образом установите переменную окружения
PKG_CONFIG_PATH
. Она будет использоватьсяpkg-config
для определения пути поиска . Если не используетсяpkg-config
, то можно использоватьconfigure
с ключом--with-openssl-dir=DIR
(только для OpenSSL).
На последнем, финальном шаге, make install выведет путь, по которому была собран модуль mongodb.so. Например так:
Installing shared extensions: /usr/lib/php/extensions/debug-non-zts-20151012/
Убедитесь, что директива extension_dir файла php.ini указывает на каталог, в котором присутствует библиотека mongodb.so. Проверить значение этой директивы можно так:
$ php -i | grep extension_dir extension_dir => /usr/lib/php/extensions/debug-non-zts-20151012 => /usr/lib/php/extensions/debug-non-zts-20151012
Если директории отличаются, то поменяйте значение extension_dir в php.ini или просто переместите mongodb.so в нужную директорию.
Добавьте следующую строку в файл php.ini для каждого окружения, в котором вы собираетесь использовать драйвер:
extension=mongodb.so
You think this is to complicated? You use Ubuntu 14 or 16? use this:
sudo apt-get install php-mongodb
This installs everything you need to use MongoDB inside PHP.
Don't stop using MongoDB, is the best that will happen to you.
You're Welcome.
a) If your git version is not recent enough, as can happen e.g. on Ubuntu 12.04 LTS, git submodule --init won't exist
In that case use:
git submodule init
git submodule update
b) make install does not create a mongodb.conf configuration file to support the debian/ubuntu PHP versions phpenmod/phpdismod commands. To have them work:
- do not add the extension=mongodb.so line to php.ini
- add it to a mongodb.ini file in the PHP mods-available directory
- the commands will then work for this extension
c) if you have multiple versions of PHP on a system such as b), the phpenmod/phpdismod commands may fail if the extension is not built for the default PHP CLI version. To have it be enabled for a specific version, use the -v argument, like
phpenmod -v php7.1 mongodb
After installing mongodb, in terminal there are couple of error ex.
PHP Warning: PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: C:\xampp\php\ext\mongodb.so (The specified module could not be found.), C:\xampp\php\ext\php_mongodb.so.dll (The specified module could not be found.)) in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: C:\xampp\php\ext\mongodb.so (The specified module could not be found.), C:\xampp\php\ext\php_mongodb.so.dll (The specified module could not be found.)) in Unknown on line 0
https://prnt.sc/ubr5mq
Solution:
1. If you include mongodb extension in php.ini file first remove that
2. Goto your php path inside Xampp and create an file called mongodb.ini and pest this below line, see ss - https://prnt.sc/ubr7ii
code extension=mongodb.so
This solution works in windows 10, php 7.4 version