• 技术文章 >后端开发 >PHP问题

    mac 怎么安装php mongodb

    藏色散人藏色散人2021-12-31 11:05:31原创409

    mac安装php mongodb的方法:1、下载php的mongodb扩展;2、解压安装包;3、进入解压目录,运行phpize,为安装扩展准备环境;4、安装编译mongodb的php扩展;5、在extension区域添加mongodb扩展。

    本文操作环境:macOS10.13.3系统、mongodb1.4.3&&PHP7.1.16版本、MacBook Air 2019电脑

    mac 怎么安装php mongodb?

    mac下PHP安装mongodb的扩展:

    phpize路径为/usr/local/php/bin/phpize。

    php-config路径为 /usr/local/php/bin/php-config。

    1.首先下载php的mongodb扩展

    从http://pecl.php.net/package/mongodb这个网址下载mongodb的扩展源码包(注意:不要从http://pecl.php.net/package/mongo下载,因为这个package已经过期),在命令行执行如下命令:

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

    2.解压安装包

     tar -zxvf  mongodb-1.4.3.tgz

    3.进入解压目录,运行phpize,为安装扩展准备环境

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

    4.安装编译mongodb的php扩展

    第3步执行完成后,在当前目录下就生成了configure文件。接下来,使用./configure命令进行安装配置;然后,使用make && make install进行编译安装,命令如下:

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

    5. 查看是否在PHP扩展目录中已经生成.so扩展文件

    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.编辑php.ini,在extension区域添加mongodb扩展

    extension=mongodb.so

     注意:扩展的名称是mongodb.so,不是mongo.so。

    7.查看PHP的mongodb扩展模块是否已经成功安装

    php -m | grep mongodb

    如果在直接结果中看到mongodb,就说明已经安装成功。

    或着,重启php-fpm,然后执行phpinfo()方法。若看到mongodb的内容,则说明安装成功。

    8. 在PHP中使用mongodb扩展

    在安装完成PHP的mongodb的扩展后,在composer.json文件的require块中添加"mongodb/mongodb": "^1.4"。然后,再通过composer命令加载mongodb PHP版本客户端的扩展包,命令如下所示:

    composer require mongodb/mongodb

    结果报了如下的错误:

    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.

    分析发现,是安装的mongodb扩展版本太低。于是,改为1.5.3版本(mongodb-1.5.3.tgz),重新操作一遍,再次通过composer命令加载mongodb PHP版本客户端的扩展包,就好了。具体信息如下:

    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

    推荐学习:《PHP视频教程

    以上就是mac 怎么安装php mongodb的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:mac php mongodb扩展
    上一篇:PHP中construct是什么意思 下一篇:如何解决php exec乱码问题
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• php mongo和mongodb的区别是什么• php7怎么安装mongodb扩展• php链接mongodb失败怎么办• 分享一个很有用的php7+mongodb类!
    1/1

    PHP中文网