PHPのMongoDBドライバ拡張をインストールする

3623 ワード

PHPのMongoDBドライバ拡張をインストールする
概要
MongoDBは、分散ファイルに基づいて格納されたC++言語で作成されたデータベースです.
MongoDBはリレーショナル・データベースと非リレーショナル・データベースの間に介在する製品で、非リレーショナル・データベースの中で最も機能が豊富で、最もリレーショナル・データベースに似ています.
MongoDBがサポートするデータ構造は非常に緩やかで、jsonのようなbson形式であるため、比較的複雑なデータ型を格納することができる.
MongoDBはコレクション向けに格納されています.「集合向け」(Collection-Oriented)とは、データがデータセットにグループ化されて格納されることを意味し、1つの集合(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-mongoではなく、新しいphp-mongodbをインストールする必要があります.
拡張アドレス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

新しい1行拡張構成(この例ではフルパスを使用します):
# 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  // 

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]