Установка

Установка PHP-модуля MongoDB Ρ‡Π΅Ρ€Π΅Π· Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ PECL

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± установкС этого PECL-модуля Π΄Π°Ρ‘Ρ‚ Π³Π»Π°Π²Π° руководства «Установка PECL-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉΒ». Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация ΠΎ Π½ΠΎΠ²Ρ‹Ρ… вСрсиях, скачивании, исходных Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ΅ ΠΈ ΠΆΡƒΡ€Π½Π°Π»Π΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ доступна ΠΏΠΎ адрСсу: » https://pecl.php.net/package/mongodb

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Linux, Unix ΠΈ macOS Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ для установки модуля:

$ sudo pecl install mongodb

На систСмах с нСсколькими установлСнными вСрсиями PHP (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ для macOS: установка ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Homebrew ΠΈ » XAMPP) Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ вСрсии PHP Π±ΡƒΠ΄Π΅Ρ‚ своя ΠΊΠΎΠΌΠ°Π½Π΄Π° pecl ΠΈ Ρ„Π°ΠΉΠ» (ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»Ρ‹) php.ini. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ PHP-ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ CLI ΠΈΠ»ΠΈ web Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ php.ini.

Начиная с вСрсии модуля 1.17.0 PECL Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ настройки configure. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π² Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ скриптС, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ yes с Π²Π²ΠΎΠ΄ΠΎΠΌ пустой строки ΠΏΡ€ΠΈΡΠΎΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· символ Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π΅Ρ€Ρ‚Ρ‹ ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ pecl install:

$ yes '' | sudo pecl install mongodb

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² configure доступСн Π² Ρ„Π°ΠΉΠ»Π΅ package.xml, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΠΈ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ PECL. Π§Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ со спСцифичными ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ configure Π² Π½Π΅ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΌ сцСнарии, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ --configureoptions для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pecl install:

$ sudo pecl install --configureoptions='with-mongodb-system-libs="yes" enable-mongodb-developer-flags="no"' mongodb

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ установка модуля Ρ‡Π΅Ρ€Π΅Π· PECL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ встроСнныС вСрсии ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ: » libbson, » libmongoc, » libmongocrypt ΠΈ попытаСтся ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… автоматичСски.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Когда процСсс установки Π½Π΅ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ SSL, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚, Ρ‡Ρ‚ΠΎ установили ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ libssl-dev ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ » pkg-config. ΠŸΡ€ΠΎΠ²ΠΎΠ΄ΡΡ‚ Ρ€ΡƒΡ‡Π½ΡƒΡŽ установку, Ссли это Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ» php.ini для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ окруТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ:

extension=mongodb.so

Установка PHP-модуля MongoDB Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму macOS Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Homebrew

Начиная с » Homebrew 1.5.0 ΠΏΠ°ΠΊΠ΅Ρ‚ » Homebrew/php tap объявили ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΠΌ, Π° Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ PHP ΡƒΠ΄Π°Π»ΠΈΠ»ΠΈ. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ macOS Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ Ρ‡Π΅Ρ€Π΅Π· Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρƒ » php ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ PHP, установлСнным Ρ‡Π΅Ρ€Π΅Π· ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Homebrew, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pecl, ΠΊΠ°ΠΊ рассказываСт стандартная инструкция ΠΏΠΎ установкС ΠΈΠ· рСпозитория PECL.

Установка PHP-модуля MongoDB Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Windows

ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ скомпилированныС исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΈΠΊΡ€Π΅ΠΏΠ»ΡΡŽΡ‚ΡΡ ΠΊ » выпускам ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½Π° GitHub. Архивы ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΉ вСрсии PHP, ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎΠΉ бСзопасности (TS ΠΈΠ»ΠΈ NTS) ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ (x86 ΠΈΠ»ΠΈ x64). ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΠ² для PHP-окруТСния ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» php_mongodb.dll Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с модулями (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ "ext").

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ» php.ini для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ окруТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ:

extension=php_mongo.dll

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ DLL-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π²ΠΎ врСмя выполнСния:

PHP Warning:  PHP Startup: Unable to load dynamic library 'mongodb'

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ DLL-Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ скачали, соотвСтствуСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ свойствам срСды выполнСния PHP:

  • ВСрсия PHP (PHP_VERSION)
  • ΠŸΠΎΡ‚ΠΎΠΊΠΎΠ²Π°Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ (PHP_ZTS)
  • АрхитСктура (PHP_INT_SIZE)

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ этих свойств доступСн Π² Π²Ρ‹Π²ΠΎΠ΄Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ phpinfo(). Π”Π²Π°ΠΆΠ΄Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π²ΠΎΠ΄ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ phpinfo() соотвСтствуСт ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΡŽ, Ссли Π² систСму установили нСсколько вСрсий PHP.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ DLL-зависимости для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Windows
ΠœΠΎΠ΄ΡƒΠ»ΡŒ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ОБ Windows, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ³Π΄Π° систСмной ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH доступны DLL-Ρ„Π°ΠΉΠ»Ρ‹. Π Π°Π·Π΄Π΅Π» FAQ «Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ PHP-ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ PATH Π² WindowsΒ» рассказываСт, ΠΊΠ°ΠΊ это ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ. НС Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΡŽΡ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ DLL-Ρ„Π°ΠΉΠ»Ρ‹ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ PHP Π² ΡΠΈΡΡ‚Π΅ΠΌΠ½ΡƒΡŽ ΠΏΠ°ΠΏΠΊΡƒ Windows, хотя это Ρ‚ΠΎΠΆΠ΅ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ систСмная пСрСмСнная PATH содСрТит ΠΏΡƒΡ‚ΡŒ ΠΊ систСмной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ модуля Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ PATH ΠΏΠΎΡ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹: libsasl.dll

Π‘Π±ΠΎΡ€ΠΊΠ° PHP-Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° MongoDB ΠΈΠ· исходного ΠΊΠΎΠ΄Π°

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ заинтСрСсованы Π² послСдних исправлСниях ошибок, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΡŽΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈΠ· послСднСго исходного ΠΊΠΎΠ΄Π° » на сайтС 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-mongodb-system-libs=yes ΠΊΠΎΠΌΠ°Π½Π΄Π΅ configure, Ссли эти Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΡƒΠΆΠ΅ установили Π² систСму.

ΠŸΠΎΠ»Π½Ρ‹ΠΉ список ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ configure ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· запуск ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹: configure --help.

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ со встроСнными вСрсиями Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ libmongoc ΠΈ libmongocrypt, ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ попытаСтся Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ SSL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π² соотвСтствии с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ --with-mongodb-ssl ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ configure. Начиная с вСрсии модуля 1.17.0 ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠ΅ отдаётся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ OpenSSL. ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠ΅ вСрсии Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Π° Π½Π° систСмах с macOS ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π²Ρ‹Π±ΠΈΡ€Π°Π»ΠΈ Secure Transport, Π° Π½Π° ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… β€” OpenSSL.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: ΠŸΠΎΡ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, установили Π»ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ libssl-dev ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ » pkg-config, Ссли процСсс установки Π½Π΅ Π½Π°ΠΉΠ΄Ρ‘Ρ‚ SSL-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ. БистСма часто содСрТит Π½Π°Π±ΠΎΡ€ вСрсий Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenSSL, ΠΊΠΎΠ³Π΄Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ Π½Π° macOS ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‚ Ρ‡Π΅Ρ€Π΅Π· ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ Homebrew. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° pkg-config Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΊΠ°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ срСды PKG_CONFIG_PATH, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ OpenSSL.

На послСднСм, Ρ„ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠΌ шагС, ΠΊΠΎΠΌΠ°Π½Π΄Π° make install Π²Ρ‹Π²Π΅Π΄Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ собрали ΠΌΠΎΠ΄ΡƒΠ»ΡŒ mongodb.so. НапримСр, Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

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

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° extension_dir Ρ„Π°ΠΉΠ»Π° php.ini ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π»Π΅ΠΆΠΈΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ mongodb.so. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ Π²ΠΎΡ‚ Ρ‚Π°ΠΊ:

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

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ extension_dir ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Π² Ρ„Π°ΠΉΠ»Π΅ php.ini ΠΈΠ»ΠΈ просто ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ Ρ„Π°ΠΉΠ» mongodb.so Π² ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, Ссли Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку Π² Ρ„Π°ΠΉΠ» php.ini для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ окруТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ планируСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ:

extension=mongodb.so
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π΅Ρ‰Ρ‘ Π½Π΅ добавляли примСчания для страницы