PHP Velho Oeste 2024

Установка

Внимание

Это расширение объявлено устаревшим. Вместо него используйте расширение MongoDB.

Драйвер MongoDB работает практически на любой операционной системе: Windows, macOS, Unix, и Linux; на машинах с порядком от младшего к старшему и от старшего к младшему; на 32- и 64-разрядных машинах; с версиями PHP от 5.3 до 5.6 (версии драйвера до 1.6 также работают с PHP 5.2).

Это расширение » PECL не поставляется вместе с PHP.

Ручная установка

Разработчики драйверов и люди, заинтересованные в самых свежих версиях, могут собрать его из исходных кодов, которые находятся на » Github. Перейдите на Github, затем нажмите кнопку "download" и выполните команды:

$ tar zxvf mongo-php-driver-legacy-<commit_id>.tar.gz
$ cd mongo-php-driver-legacy-<commit_id>
$ phpize
$ ./configure
$ make all
$ sudo make install

Внесите изменения в php.ini:

  • Убедитесь, что переменная extension_dir указывает на каталог, содержащий mongo.so. Установщик покажет путь, где он устанавливает драйвер, показав примерно следующее:

    Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/mongo.so'
    Убедитесь, что он совпадает с каталогом расширений PHP, выполнив:
    $ php -i | grep extension_dir
      extension_dir => /usr/lib/php/extensions/no-debug-non-zts-20060613 =>
                       /usr/lib/php/extensions/no-debug-non-zts-20060613
    Если это не так, измените extension_dir в php.ini или переместите mongo.so.

  • Для автозагрузки расширения при старте PHP, добавьте строку:

    extension=mongo.so

Установка на *NIX

Выполните:

$ sudo pecl install mongo

Добавьте следующую строку в файл php.ini:

extension=mongo.so

Если при установке pecl не хватает памяти, убедитесь, что memory_limit в php.ini установлен, как минимум 128MB.

Установка на Windows

Скомпилированные модули для каждой версии доступны на сайте » PECL для всех комбинаций версий, потокобезопасности и библиотек VC. Разархивируйте загруженный модуль и скопируйте php_mongo.dll директорию с расширениями PHP (по умолчанию "ext").

Добавьте следующую строку в php.ini:

extension=php_mongo.dll

Замечание: Дополнительные зависимости DLL для пользователей Windows

Для работы этого расширения системной переменной Windows PATHдолжны быть доступны DLL-файлы. Чтобы узнать как этого достичь, обратитесь к разделу FAQ "Как добавить мою директорию с PHP в переменную Windows PATH". Хотя копирование DLL-файлов из директории PHP в системную папку Windows также решает проблему (потому что системная директория по умолчанию находится в переменной PATH), это не рекомендуется. Этому расширению требуются следующие файлы в переменной PATH: libsasl.dll

macOS

В большинстве случаев установка из PECL - самый простой способ:

$ sudo pecl install mongo

Если в вашей системе установлено несколько версий PHP (например, встроенная в macOS, Homebrew, » XAMPP), обратите внимание, что у каждой версии PHP будет своя команда pecl и файл php.ini.

Замечание: Зависимость Xcode для компиляции в macOS

Для компиляции драйвера на macOS потребуются инструменты разработчика Xcode, которые устанавливаются с помощью команды xcode-select --install. Если эта команда недоступна, сначала вам понадобится установить пакет » Command Line Tools.

Gentoo

В Gentoo есть пакет для драйвера PHP PECL под названием dev-php/pecl-mongo, который можно установить с помощью команды:

$ sudo emerge -va dev-php/pecl-mongo

Если вы используете PECL, то можете получить сообщение об ошибке, что libtool неправильной версии. Компиляция из исходного кода вам понадобится для запуска aclocal и autoconf.

$ phpize
$ aclocal 
$ autoconf 
$ ./configure
$ make
$ sudo make install

Red Hat

Включает в себя Fedora и CentOS.

Параметры Apache по умолчанию в этих системах не позволяют запросам устанавливать сетевые подключения, так что при попытке подключения к базе данных драйвер получит ошибку "Доступ запрещен". Если вы столкнулись с этой проблемой, попробуйте выполнить:

$ /usr/sbin/setsebool -P httpd_can_network_connect 1
Затем перезапустите Apache. (Эта проблема также возникает с SELinux.)

Инструкции по установке сторонних производителей

Многие люди создали отличные учебные пособия по установке драйверов PHP.

  • »  (Re)installing PHP on macOS

    В этой статье Джастина Хилмана подробно описан процесс установки PHP и дополнительных расширений с помощью Homebrew на macOS. Это дополняет предыдущие инструкции на этой странице по установке драйвера с помощью Homebrew.

  • »  PHP 5.3.1 with Xdebug, MongoDB and Lithium on Ubuntu 9.10 / Apache 2.2

    Этот скринкаст Джона Адамса демонстрирует, как быстро начать работу с PHP 5.3.1, Xdebug и MongoDB в Ubuntu 9.10 с Apache.

add a note add a note

User Contributed Notes 6 notes

up
9
cap at unagon dot com
14 years ago
For Debian users: apt-get install php5-dev will install phpize for you.
up
4
bradley dot henke at colorado dot edu
11 years ago
Instructions for Manually Installing MongoDB for PHP for use with "XAMPP for Linux":

There were two gotchas that I ran into. "XAMPP for Linux" needs 32 bit libraries, and the php API version must match the php API version of "XAMPP for Linux".
Hopefully this will save someone else time figuring this all out!

1) Install "XAMPP for Linux" AND the "XAMPP for Linux Development Files".

2) Grab the source code from github (in the manual instructions above)
$ tar zxvf mongodb-mongodb-php-driver-<commit_id>.tar.gz
$ cd mongodb-mongodb-php-driver-<commit_id>

There are now some smalls deviation from the manual instructions...
3) PHPize
$ sudo /opt/lampp/bin/phpize

4) Configure
$ ./configure

5) Make changes to the Makefile (XAMPP requires a 32-bit compilation)
- Choose your favorite text editor and open "Makefile"
- Make the following changes:
Line 20: prefix = /opt/lampp
Line 23: prefix = /opt/lampp
Line 25: phpincludedir = /opt/lampp/include/php
Line 27: CFLAGS = -g -O2 -m32
Line 34: EXTENSION_DIR = /opt/lampp/lib/php/extensions/no-debug-non-zts-20100525/
Line 35: PHP_EXECUTABLE = /opt/lampp/bin/php

Make sure you replace </path/to/mongo-php-driver-master>
Line 38: INCLUDES = -I/opt/lampp/include/php -I/opt/lampp/include/php/main -I/opt/lampp/include/php/TSRM -I/opt/lampp/include/php/Zend -I/opt/lampp/include/php/ext -I/opt/lampp/include/php/ext/date/lib -I</path/to/mongo-php-driver-master>/util -I</path/to/mongo-php-driver-master>/exceptions -I</path/to/mongo-php-driver-master>/gridfs -I</path/to/mongo-php-driver-master>/types -I</path/to/mongo-php-driver-master>/mcon

6) Compile
$ sudo make all

7) Copy the static object into the extension directory
$ sudo cp modules/mongo.so /opt/lampp/lib/php/extensions/no-debug-non-zts-20100525/

9) Update your php.ini file
- Grab you favorite text editor and open /opt/lampp/etc/php.ini (you'll probably need to use sudo).
- Add the line: extension=mongo.so

10) Restart "XAMPP for Linux". You should now be able to see Mongo listed in your phpinfo() page! Installation Complete!!!

Good Luck!
up
2
Andrey
12 years ago
On windows installation check for VC compilator version inside phpinfo(), if you install incorrect one it wouldn't work.
I tried to run on Apache2 with VC6, and always get folowing error:

Fatal error: Class 'Mongo' not found

Until I look into phpinfo and found MSVC9, after that
I install VC9 dll files and it solve the problem.
up
-1
Hanakaze
11 years ago
To install the Mongo driver on Windows 7 x64 with EasyPHP, you have to use the x86 driver (instead of x64) and non nts :
php_mongo-1.3.2RC1-5.4-vc9.dll actually
up
-2
poorpuer at gmail dot com
13 years ago
If you're running IIS under Windows 7 and have PHP manager installed you'll also need to manually enable the extension. Start IIS Manager, select PHP Manager, under the section labeled PHP Extensions click on Enable or disable an extension, then enable the php_mongo.dll extension, and restart IIS.
up
-11
brick
9 years ago
Apache 2.4.10 win32 from apachelounge with php 5.6.4 VC11 x86 Thread Safe on windows7 sp1.
The 5.6 Thread Safe (TS) x86 mongo.dll i downloaded from http://pecl.php.net/package/mongo/1.5.8/windows
I kept getting the following error
PHP Startup: Unable to load dynamic library mongo.dll
The specified module could not be found.
I fixed this by adding the php and the php/ext to the windows path and rebooting(log off didn't cut it).
To Top