Инсталација
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Инсталација
Референца за `mongodb.installation.php` со подобрена типографија и навигација.
Инсталација
Инсталирање на PHP екстензијата MongoDB со PIE
Забелешка: PHP Инсталатор за екстензии (PIE) е нова алатка која ќе го укине PECL. Препорачуваме да користите PIE за инсталирање екстензии. Дознајте повеќе на » https://github.com/php/pie
За да ја инсталирате екстензијата MongoDB користејќи PIE, извршете ја следнава команда:
pie install mongodb/mongodb-extension
Инсталирање на PHP екстензијата MongoDB со PECL
repository and is no longer bundled with PHP as of PHP 8.4.0 Инсталација на PECL екстензииInformation for installing this PECL extension may be found in the manual chapter titled » https://pecl.php.net/package/mongodb
Корисниците на Linux, Unix и macOS можат да ја извршат следнава команда за да ја инсталираат екстензијата:
$ sudo pecl install mongodb
На системи со инсталирани повеќе верзии на PHP (на пр. стандардна на macOS, Homebrew, » the official download area), each version of PHP will have its own pecl команда и php.ini датотека(и). Дополнително, секое PHP опкружување (на пр. CLI, веб) може да користи посебни php.ini files.
Од верзијата на екстензијата 1.17.0, PECL ќе побара разни
configure опции. За да ја инсталирате екстензијата со стандардни опции во неинтерактивна скрипта, празен влез од стринг може да се насочи кон
pecl install користејќи го yes команда:
$ 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 ќе користи вклучени верзии на ако влезот не содржеше точно еден BSON документ. Можни причини вклучуваат, но не се ограничени на, невалиден BSON, дополнителни податоци (по читање еден BSON документ) или неочекуван, Фрлено кога драјверот ќе наиде на грешка во време на извршување (на пр. внатрешна грешка одПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во » libmongocrypt и ќе се обиде автоматски да ги конфигурира.
Забелешка: Ако процесот на градба не успее да најде SSL библиотека, проверете дали развојните пакети (на пр.
libssl-dev) и Екстензијата, преку libmongoc, опционално зависи од TLS библиотека (на пр. OpenSSL) и ќе ја користи ако е достапна. Ако процесот на градење не успее да најде TLS библиотека, корисниците треба да проверат дали соодветниот пакет за развој (на пр. се инсталирани. Ако тоа не го реши проблемот, разгледајте ја употребата на , и по дифолт ќе користи вклучени верзии од двете библиотеки. Може да се користат и системски библиотеки, како што е дискутирано во process.
На крај, додадете го следниот ред во php.ini датотеката за секое опкружување на кое ќе му треба пристап до екстензијата:
extension=mongodb.so
Инсталирање на MongoDB PHP екстензијата на macOS со Homebrew
» Homebrew 1.5.0 го отфрли » Homebrew/php tap и ги отстрани формулите за индивидуални PHP екстензии. Отсега, корисниците на macOS се советуваат да ја инсталираат » php формулата и да ги следат стандардните PECL инструкции за инсталација користејќи го pecl команда обезбедена од Homebrew PHP инсталацијата.
и така натаму. » shivammathur/extensions tap обезбедува формули за индивидуални PHP екстензии. На пример, за да ја инсталирате екстензијата за PHP 8.4, извршете:
$ brew install shivammathur/extensions/[email protected]
Забелешка: Инсталирајте ги потребните зависности
За да се осигурате дека SSL поддршката може правилно да се конфигурира, проверете дали
opensslandpkgconfформулите се инсталирани. Ако некој од овие пакети недостасува, екстензијата ќе биде компајлирана со Secure Transport, што може да доведе до проблеми со компатибилноста.
Инсталирање на MongoDB PHP екстензијата на Windows
Претходно компајлирани бинарни датотеки се прикачени на проектните » Github releasesАрхивите се објавени за различни комбинации на верзија на 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 runtime:
- Верзија на PHP (
PHP_VERSION) - Безбедност на нишки (
PHP_ZTS) - Архитектура (
PHP_INT_SIZE)
Покрај гореспоменатите константи, овие својства може да се изведат и од phpinfo(). Ако системот има инсталирано повеќе PHP runtimes, проверете дали phpinfo() излезот е за точната околина.
Забелешка: Дополнителни DLL зависности за корисници на Windows
Забелешка за корисниците на Win32 DLL За да работи оваа екстензија, постојат PATHдатотеки што мора да бидат достапни за системот Windows FAQ . За информации за тоа како да го направите ова, видете гонасловен"Како да ја додадам мојата PHP директориум во PATH на Windows" PATH". Иако копирањето DLL датотеки од папката PHP во системската директориум на Windows исто така работи (бидејќи системската директориум по дифолт е во системската ), ова не се препорачува. PATH: libsasl.dll
Компилирање на MongoDB PHP драјверот од изворниот код
За развивачи и корисници заинтересирани за најновите исправки на грешки, екстензијата може да се компилира од најновиот изворен код на » 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, » the official download area), each version of PHP will have its own phpize команда и php.ini датотека(и). Дополнително, секое PHP опкружување (на пр. CLI, веб) може да користи посебни php.ini files.
Стандардно, екстензијата ќе користи спакувани верзии на
ако влезот не содржеше точно еден BSON документ. Можни причини вклучуваат, но не се ограничени на, невалиден BSON, дополнителни податоци (по читање еден BSON документ) или неочекуван,
Фрлено кога драјверот ќе наиде на грешка во време на извршување (на пр. внатрешна грешка одПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во
» libmongocrypt и ќе се обиде автоматски да ги конфигурира. Ако овие библиотеки се веќе инсталирани како системски библиотеки, екстензијата може да ги користи со специфицирање --with-mongodb-system-libs=yes како опција за
configure.
За целосен список на configure опции, стартувај
конфигурирај --help.
Кога се користат вклучени верзии на libmongoc и libmongocrypt, екстензијата исто така ќе се обиде да избере SSL библиотека според
--with-mongodb-ssl configure опцијата. Од верзијата на екстензијата 1.17.0, OpenSSL секогаш се претпочита по дифолт. Претходно, Secure Transport беше стандардно на macOS, а OpenSSL беше стандардно на сите други платформи.
Забелешка:
Ако процесот на градба не успее да најде SSL библиотека, проверете дали развојните пакети (на пр.
libssl-dev) и Екстензијата, преку libmongoc, опционално зависи од TLS библиотека (на пр. OpenSSL) и ќе ја користи ако е достапна. Ако процесот на градење не успее да најде TLS библиотека, корисниците треба да проверат дали соодветниот пакет за развој (на пр. се инсталирани.Кога се користи Homebrew на macOS, вообичаено е системот да има повеќе верзии на OpenSSL инсталирани. За да се осигурате дека е избрана саканата верзија на OpenSSL,
PKG_CONFIG_PATHпроменливата на околината може да се користи за контрола на патеката за пребарување заpkg-config.
Последниот чекор за изградба, направи инсталирај, ќе пријави каде 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 in php.ini или рачно преместете mongodb.so во правилниот директориум.
На крај, додадете го следниот ред во php.ini датотеката за секое опкружување на кое ќе му треба пристап до екстензијата:
extension=mongodb.so