Home >Backend Development >PHP Problem >How to install php mongodb on mac

How to install php mongodb on mac

藏色散人
藏色散人Original
2021-12-31 11:05:312825browse

How to install php mongodb on mac: 1. Download the mongodb extension of php; 2. Unzip the installation package; 3. Enter the decompression directory, run phpize, and prepare the environment for installing the extension; 4. Install and compile the php extension of mongodb ;5. Add the mongodb extension in the extension area.

How to install php mongodb on mac

The operating environment of this article: macOS10.13.3 system, mongodb1.4.3&&PHP7.1.16 version, MacBook Air 2019 computer

mac How to install php mongodb?

PHP installation mongodb extension under mac:

phpize path is /usr /local/php/bin/phpize.

php-config path is /usr/local/php/bin/php-config.

1. First download the mongodb extension of php

Download the mongodb extension source code package from http://pecl.php.net/package/mongodb (note: do not download it from Download from http://pecl.php.net/package/mongo (because this package has expired), execute the following command on the command line:

wget http://pecl.php.net/get/mongodb-1.4.3.tgz

2. Unzip the installation package

 tar -zxvf  mongodb-1.4.3.tgz

3. Enter the decompression directory, run phpize, and prepare the environment for installing the extension

 cd mongodb-1.4.3
 /usr/local/php/bin/phpize

4. Install and compile the php extension for mongodb

After the completion of step 3, the configure file will be generated in the current directory. Next, use the ./configure command to install and configure; then, use make && make install to compile and install. The command is as follows:

 ./configure --with-php-config=/usr/local/php/bin/php-config
 make && make install

5. Check whether the .so extension file has been generated in the PHP extension directory

php -i | grep extension_dir //查看PHP扩展包存储目录,这里为extension_dir => /usr/local/lib/php/pecl/20160303 => /usr/local/lib/php/pecl/20160303
ls /usr/local/lib/php/pecl/20160303 //查看目录中是否有mongodb.so文件

6. Edit php.ini and add the mongodb extension in the extension area

extension=mongodb.so

Note: The name of the extension is mongodb.so, not mongo.so.

7. Check whether the PHP mongodb extension module has been successfully installed

php -m | grep mongodb

If you see mongodb in the direct result, it means it has been installed successfully.

Or, restart php-fpm, and then execute the phpinfo() method. If you see the content of mongodb, the installation is successful.

8. Use mongodb extension in PHP

After installing the mongodb extension for PHP, add "mongodb/mongodb": "^1.4" in the require block of the composer.json file . Then, load the extension package of the mongodb PHP version client through the composer command. The command is as follows:

composer require mongodb/mongodb

The result is the following error:

Using version ^1.4 for mongodb/mongodb
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
  Problem 1
    - mongodb/mongodb 1.4.2 requires ext-mongodb ^1.5.0 -> the requested PHP extension mongodb has the wrong version (1.4.3) installed.
    - mongodb/mongodb 1.4.2 requires ext-mongodb ^1.5.0 -> the requested PHP extension mongodb has the wrong version (1.4.3) installed.
    - mongodb/mongodb 1.4.1 requires ext-mongodb ^1.5.0 -> the requested PHP extension mongodb has the wrong version (1.4.3) installed.
    - mongodb/mongodb 1.4.0 requires ext-mongodb ^1.5.0 -> the requested PHP extension mongodb has the wrong version (1.4.3) installed.
    - Installation request for mongodb/mongodb ^1.4 -> satisfiable by mongodb/mongodb[1.4.0, 1.4.1, 1.4.2].
  To enable extensions, verify that they are enabled in your .ini files:
    - /usr/local/etc/php/7.1/php.ini
    - /usr/local/etc/php/7.1/conf.d/ext-opcache.ini
  You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.
Installation failed, reverting ./composer.json to its original content.

Analysis found that it is the installed mongodb extension version too low. So, change to version 1.5.3 (mongodb-1.5.3.tgz), do it again, and load the expansion package of the mongodb PHP version client through the composer command again, and it will be fine. The specific information is as follows:

sing version ^1.4 for mongodb/mongodb
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 5 installs, 12 updates, 1 removal
  - Removing aliyuncs/oss-sdk-php (v2.3.0)
  - Updating league/flysystem (1.0.48 => 1.0.49): Downloading (100%)
  - Installing ralouphie/getallheaders (2.0.5): Loading from cache
  - Updating guzzlehttp/psr7 (1.4.2 => 1.5.0):  Checking out 53662d6688
  - Installing symfony/contracts (v1.0.1): Downloading (100%)
  - Updating symfony/translation (v4.1.7 => v4.2.0):  Checking out ff9a878c9b
  - Updating nesbot/carbon (1.34.3 => 1.36.1):  Checking out 63da8cdf89
  - Updating symfony/dom-crawler (v4.1.7 => v4.2.0):  Checking out 7438a32108
  - Updating symfony/browser-kit (v4.1.7 => v4.2.0):  Checking out db7e59fec9
  - Updating symfony/console (v4.1.7 => v4.2.0):  Checking out 4dff24e5d0
  - Updating symfony/css-selector (v4.1.7 => v4.2.0):  Checking out aa9fa526ba
  - Updating symfony/event-dispatcher (v4.1.7 => v4.2.0):  Checking out 9b788b5f7c
  - Updating symfony/finder (v4.1.7 => v4.2.0):  Checking out e53d477d7b
  - Updating symfony/process (v4.1.7 => v4.2.0):  Checking out 2b341009cc
  - Updating symfony/yaml (v4.1.7 => v4.2.0):  Checking out c41175c801
  - Installing library/aliyun-oss-php-sdk (v2.3.0): Cloning 6e801c85b9 from cache
  - Installing mongodb/mongodb (1.4.2): Downloading (100%)
  - Installing justinrainbow/json-schema (5.2.7): Downloading (100%)
symfony/contracts suggests installing psr/cache (When using the Cache contracts)
symfony/contracts suggests installing psr/container (When using the Service contracts)
symfony/contracts suggests installing symfony/cache-contracts-implementation ()
symfony/contracts suggests installing symfony/service-contracts-implementation ()
Package phpunit/dbunit is abandoned, you should avoid using it. No replacement was suggested.
Writing lock file
Generating autoload files

Recommended learning: "PHP Video Tutorial"

The above is the detailed content of How to install php mongodb on mac. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn