安装 PHP 的 MongoDB 驱动扩展

短命女 2023-02-18 11:53 64阅读 0赞

安装 PHP 的 MongoDB 驱动扩展

概述

MongoDB 是一个由C++语言编写的,基于分布式文件存储的数据库。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

MongoDB 支持的数据结构非常松散,是类似json的 bson 格式,因此可以存储比较复杂的数据类型。

MongoDB 是面向集合存储的。所谓“面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。每个集合在数据库中都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库(RDBMS)里的表(table),不同的是它不需要定义任何模式(schema)。

查看系统版本:

  1. $ uname -a
  2. Linux homestead 4.15.0-64-generic #73-Ubuntu
  3. SMP Thu Sep 12 13:16:13 UTC 2019 x86_64 x86_64 x86_64
  4. GNU/Linux

查看 PHP 版本:

  1. $ php -v
  2. PHP 7.4.0beta4 (cli) (built: Aug 28 2019 11:41:49) ( NTS )
  3. Copyright (c) The PHP Group
  4. Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies
  5. with Zend OPcache v7.4.0beta4, Copyright (c), by Zend Technologies
  6. $ /usr/bin/php7.4 -v
  7. PHP 7.4.0beta4 (cli) (built: Aug 28 2019 11:41:49) ( NTS )
  8. Copyright (c) The PHP Group
  9. Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies
  10. with Zend OPcache v7.4.0beta4, Copyright (c), by Zend Technologies

该机器中存在多个版本的PHP,默认版本 php 7.4 命令路径为 /usr/bin/php7.4

安装编译MongoDB扩展

本例中使用 PECL 自动编译安装 MongoDB 扩展。

使用 PECL 的好处就是不用自己手动下载源码、编译、配置、安装(不用手动执行 phpize、configure、make、make install等命令)。

PECL 的全称是 The PHP Extension Community Library ,是一个开放的并通过 PEAR (PHP 扩展和应用仓库)打包格式来打包安装的 PHP扩展库仓库。通过 PEAR 的 Package Manager 的安装管理方式,可以对 PECL 模块进行下载和安装。

需要注意的是,PHP MongoDB 有2个扩展,我们需要安装的是新版的 php-mongodb,而不是已经废弃的 php-mongo。

扩展地址 https://pecl.php.net/package/mongodb 。目前该扩展的最新版本是 2020-03-11 发布的 mongodb-1.7.4.tgz

使用 pecl install mongodb 命令执行安装:

  1. $ sudo pecl install mongodb
  2. downloading mongodb-1.7.4.tgz ...
  3. Starting to download mongodb-1.7.4.tgz (1,223,416 bytes)
  4. .................... done: 1,223,416 bytes
  5. 533 source files, building
  6. running: phpize
  7. Configuring for:
  8. PHP Api Version: 20190529
  9. Zend Module Api No: 20190529
  10. Zend Extension Api No: 320190529
  11. ... ...
  12. Build process completed successfully
  13. Installing '/usr/lib/php/20190529/mongodb.so'
  14. install ok: channel://pecl.php.net/mongodb-1.7.4
  15. configuration option "php_ini" is not set to php.ini location
  16. You should add "extension=mongodb.so" to php.ini

注意编译后生成的文件路径为: /usr/lib/php/20190529/mongodb.so

修改 PHP 配置文件

  1. $ php7.4 -i |grep php.ini
  2. Configuration File (php.ini) Path => /etc/php/7.4/cli
  3. Loaded Configuration File => /etc/php/7.4/cli/php.ini

修改 php.ini 配置,指定扩展路径

  1. $ vi /etc/php/7.4/cli/php.ini

新增一行扩展配置(本例中使用全路径):

  1. # MongoDB 扩展路径
  2. extension=/usr/lib/php/20190529/mongodb.so

查看 php -m 命令查看扩展模块中是否存在 mongodb:

  1. $ php -m |grep mongo
  2. mongodb

能查到该扩展,说明安装成功。

由于是在命令行执行,因此是立即生效的。如果要在fpm中生效,需要把 php-fpm 重新启动一下。

比如 Ubuntu 下可以执行:

  1. $ sudo service php-fpm restart
  2. $ sudo service php7.4-fpm restart // <-- php7.4

查看 php-fpm 进程

  1. $ ps aux | grep php-fpm

扩展内容

PECL PHP扩展社区库 The PHP Extension Community Library
PEAR PHP扩展和应用仓库 PHP Extension and Application Repository

参考链接

https://pecl.php.net/package/mongodb
https://www.cnblogs.com/jasonLiu2018/p/12514802.html

[END]

发表评论

表情:
评论列表 (有 0 条评论,64人围观)

还没有评论,来说两句吧...

相关阅读

    相关 php安装mongodb扩展

    我是使用git安装的,这也是php官方给的安装指导,链接如下,因此还是建议安装人员先安装git http://docs.php.net/manual/zh/mongodb.i