Asamblarea driver-ului PHP MongoDB din cod-sursă

Dezvoltatorii de drivere și persoanele interesate de ultimele bugfix-uri pot compila driver-ul din cel mai recent cod-sursă de pe » Github. Rulați următoarele comenzi pentru a clona și a asambla proiectul:

$ 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

Dacă sistemul dumneavoastră are instalate versiuni PHP multiple (de ex. macOS implicit și » XAMPP), atrageți atenția că fiecare versiune PHP are propria comandă phpize și fișierul php.ini.

Implicit driver-ul va folosi versiunile încorporate ale » libbson, » libmongoc și » libmongocrypt și va încerca să le configureze. Dacă aceste biblioteci sunt deja instalate ca biblioteci de sistem, puteți instrui driver-ul să le utilizeze specificând --with-libbson=yes --with--libmongoc=yes ca argumente pentru configure. Începând cu versiunea 1.7.0 a extensiei, aceste argumente sunt învechite și ar trebui să utilizați în loc --with-mongodb-system-libs=yes.

Pentru a obține o listă completă a opțiunilor configure, executați configure --help.

La utilizarea versiunilor încorporate ale biliotecilor libbson și libmongoc, driver-ul de asemenea va încerca să selecteze o bibliotecă SSL în conformitate cu opțiunea --with-mongodb-ssl pentru configure. Valoarea implicită este --with-mongodb-ssl=auto, ce va face să fie căutată Secure Transport (doar pe macOS), OpenSSL și LibreSSL în această ordine. În plus, puteți specifica openssl, libressl sau darwin pentru a forța selectarea respectivă a unei anumite biblioteci.

Notă:

Dacă procesul de asamblare nu găsește o bibliotecă SSL verificați dacă pachetele de dezvoltare (de ex. libssl-dev) și » pkg-config sunt instalate.

La utilizarea Homebrew pe macOS, este un lucru obișnuit ca un sistem să aibă instalate multiple versiuni OpenSSL. Pentru a vă asigura că este selectată versiunea dorită OpenSSL, variabila de mediu PKG_CONFIG_PATH poate fi folosită pentru a controla calea de căutare pentru pkg-config. Dacă pkg-config nu este utilizat, configure de asemenea susține un argument --with-openssl-dir=DIR, care poate fi utilizat pentru a specifica manual calea de căutare (doar pentru OpenSSL).

Etapa finală a asamblării, make install, va raporta unde a fost instalată mongodb.so, similar cu:

Installing shared extensions:     /usr/lib/php/extensions/debug-non-zts-20151012/

Asigurați-vă că opțiunea extension_dir din php.ini indică către directorul unde mongodb.so a fost instalat. Puteți afla valoarea opțiunii cu următoarea comandă:

$ php -i | grep extension_dir
  extension_dir => /usr/lib/php/extensions/debug-non-zts-20151012 =>
                   /usr/lib/php/extensions/debug-non-zts-20151012

Dacă directoarele diferă schimbați extension_dir din php.ini sau deplasați manual mongodb.so în directorul corect.

În final, adăugați următoarea linie în fișierul php.ini:

extension=mongodb.so

add a note add a note

User Contributed Notes 3 notes

up
26
chatocoral at gmail dot com
7 years ago
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.
up
0
fgm at osinet dot fr
8 years ago
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
up
-2
Anisur Rahman (anisur2805 at gmail dot com)
4 years ago
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
To Top