安裝 PHP 的 MongoDB 驅動擴展

安裝 PHP 的 MongoDB 驅動擴展

概述

MongoDB 是一個由C++語言編寫的,基於分佈式文件存儲的數據庫。

MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。

MongoDB 支持的數據結構非常鬆散,是類似json的 bson 格式,因此可以存儲比較複雜的數據類型。

MongoDB 是面向集合存儲的。所謂“面向集合”(Collection-Oriented),意思是數據被分組存儲在數據集中,被稱爲一個集合(Collection)。每個集合在數據庫中都有一個唯一的標識名,並且可以包含無限數目的文檔。集合的概念類似關係型數據庫(RDBMS)裏的表(table),不同的是它不需要定義任何模式(schema)。

查看系統版本:

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

查看 PHP 版本:

$ php -v
PHP 7.4.0beta4 (cli) (built: Aug 28 2019 11:41:49) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.0beta4, Copyright (c), by Zend Technologies

$ /usr/bin/php7.4 -v
PHP 7.4.0beta4 (cli) (built: Aug 28 2019 11:41:49) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies
    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 命令執行安裝:

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

注意編譯後生成的文件路徑爲: /usr/lib/php/20190529/mongodb.so

修改 PHP 配置文件

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

修改 php.ini 配置,指定擴展路徑

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

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

# MongoDB 擴展路徑
extension=/usr/lib/php/20190529/mongodb.so 

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

$ php -m |grep mongo
mongodb

能查到該擴展,說明安裝成功。

由於是在命令行執行,因此是立即生效的。如果要在fpm中生效,需要把 php-fpm 重新啓動一下。

比如 Ubuntu 下可以執行:

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

查看 php-fpm 進程

$ 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]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章