mongo-php-installation-6

  • Installing/Configuring
  • Installation

  • Installation
  • Installation

    Installation

    Warning

    This extension is deprecated. Instead, the MongoDB extension should be
    used.

    The MongoDB PHP driver should work on nearly any
    system: Windows, macOS, Unix, and Linux; little- and big-endian
    machines; 32- and 64-bit machines; PHP 5.3 through 5.6 (versions
    prior to 1.6 also support PHP 5.2).

    This » PECL extension is not bundled with
    PHP.

    Manual Installation

    For driver developers and people interested in the
    latest bugfixes, you can compile the driver from the latest source
    code on » Github. Go to Github and click the
    “download” button. Then run:

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

    Make the following changes to php.ini:

    • Make sure the extension_dir variable is pointing to the directory
      containing mongo.so. The build will
      display where it is installing the PHP driver with output that
      looks something like:

      Installing '/usr/lib/php/extensions/no-debug-non-zts-20060613/mongo.so'
      

      Make sure that it is the same as the PHP extension directory by
      running:

      $ 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
      

      If it’s not, change the extension_dir in
      php.ini or move mongo.so.

    • To load the extension on PHP startup, add a
      line:

      extension=mongo.so
      

    Installing on *NIX

    Run:

    $ sudo pecl install mongo
    

    Add the following line to your php.ini file:

    extension=mongo.so
    

    If pecl runs out of memory while installing, make
    sure memory_limit in php.ini is set to
    at least 128MB.

    Installing on Windows

    Precompiled binaries for each release are available
    from » PECL for a variety of combinations
    of versions, thread safety, and VC libraries. Unzip the archive and
    put php_mongo.dll in your PHP extension directory (“ext” by
    default).

    Add the following line to your php.ini file:

    extension=php_mongo.dll
    

    Note: Additional DLL
    dependencies for Windows Users

    In order for this extension to work, there are
    DLL files that must
    be available to the Windows system PATH.
    For information on how to do this, see the FAQ entitled “How
    do I add my PHP directory to the PATH on Windows
    “. Although
    copying DLL files from the PHP folder into the Windows system
    directory also works (because the system directory is by default in
    the system’s PATH), this is not
    recommended. This extension requires the
    following files to be in the PATH:

    libsasl.dll

    macOS

    In most cases installing from PECL is the easiest
    way:

    $ sudo pecl install mongo
    

    If your system has multiple version of PHP
    installed (e.g. macOS default, Homebrew, » XAMPP), note that that each
    version of PHP has its own pecl command and php.ini
    file.

    Note: Xcode dependency for
    compiling on macOS

    Compiling the driver on macOS will require Xcode
    developer tools, which may be installed with xcode-select --install. If that command is not
    available, you may first need to install the » Command Line Tools
    package.

    Gentoo

    Gentoo has a package for the PHP PECL driver called
    dev-php/pecl-mongo, which can be installed with:

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

    If you use PECL, you may get an error that libtool
    is the wrong version. Compiling from source you’ll need to run
    aclocal and autoconf.

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

    Red Hat

    This includes Fedora and CentOS.

    The default Apache settings on these systems do not
    let requests make network connections, meaning that the driver will
    get “Permission denied” errors when it tries to connect to the
    database. If you run into this, try running:

    $ /usr/sbin/setsebool -P httpd_can_network_connect 1
    

    Then restart Apache. (This issue has also occurred with
    SELinux.)

    Third-Party Installation Instructions

    A number of people have created excellent tutorials
    on installing the PHP driver.