Установка

Установка PHP-модуля MongoDB Ρ‡Π΅Ρ€Π΅Π· ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ PIE

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Установщик PHP-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Π°Π½Π³Π». PHP Installer for Extensions, PIE) β€” Π½ΠΎΠ²Ρ‹ΠΉ инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ PECL послС устарСвания. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· PIE. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ информация доступна Π½Π° страницС » https://github.com/php/pie.

Для установки модуля MongoDB Ρ‡Π΅Ρ€Π΅Π· PIE Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pie install mongodb/mongodb-extension

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

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

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

$ sudo pecl install mongodb

На систСмах с нСсколькими установлСнными вСрсиями PHP, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° macOC β€” встроСнная ΠΈ Homebrew-вСрсия 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 ΠΈ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pecl ΠΈΠ· Homebrew-вСрсии PHP, ΠΊΠ°ΠΊ рассказываСт стандартная инструкция ΠΏΠΎ установкС ΠΈΠ· рСпозитория PECL.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½ΠΎ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ » shivammathur/extensions tap доступны Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… PHP-ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. НапримСр, для установки модуля для PHP 8.4 Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

$ brew install shivammathur/extensions/mongodb@8.4
ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π² brew доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послСдниС вСрсии ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π—Π°ΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅: Установка ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… зависимостСй
Для ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройки сборки ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° SSL потрСбуСтся ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒΠ»Ρ‹ openssl ΠΈ pkgconf, ΠΈΠ½Π°Ρ‡Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ скомпилируСтся с Apple-Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΎΠΉ Secure Transport, которая часто Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ совмСстимости.

Установка PHP-модуля MongoDB Π² ОБ Windows

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

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

extension=php_mongodb.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, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° macOC β€” встроСнная ΠΈ Homebrew-вСрсия 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
οΌ‹Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ

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

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