Ubuntu 16.04でPHPバージョン7.0を使用しています。mongoドライバー/クライアントのインストールに関する詳細情報を提供しています。まず、mongodbを手動でインストールしてから、mongodb-phpドライバーをインストールしました。
1)mongo dbをインストールします。次のコマンドを入力します。
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org
Mongdbをサービスとして適切に起動するには、つまり、システムの起動時にMongodbを自動的に起動するには、次の手順に従います。
次のコマンドを入力して、/ etc / systemd / system /にファイルmongodb.serviceを作成します。
$ sudo nano /etc/systemd/system/mongodb.service
次の内容を貼り付けます:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
次に、次のコマンドを入力します。
$ sudo systemctl start mongodb
$ sudo systemctl enable mongodb
2)mongo-phpドライバーのインストール:
$ sudo pecl install mongodb
また、phpize not foundというエラーが表示される場合があります。Phpizeは、ビルド環境を作成するために使用されるコマンドです。このエラーは、pecl拡張機能のインストール時に表示される可能性があります。phpizeコマンドが見つからないというこの問題を解決するには、ユーザーはphp5-devパッケージをインストールする必要があります。それをインストールするには、次のコマンドを入力します。
$ sudo apt-get install php7.0-dev
次に、/ etc / php / 7.0 / apache2ディレクトリにあるphp.iniファイルに、mongo db拡張を追加します。
$ sudo nano /etc/php/7.0/apache2/php.ini
ファイルに次の行を追加します。
extension = mongo.so;
(ファイルの正確な場所を指定する必要があるかもしれません。私の場合、ファイルは/usr/lib/php/20151012/mongodb.soにありました。)
そのため、mongo dbはそのドライバーとともにインストールされます。
3)mongo-phpクラスが変更されたことに注意してください。ネットで利用可能なリソースのほとんどは、置き換えられた古いクラスを使用したソリューションを提供します。参照できるリンクは次のとおりです。
http://php.net/manual/en/set.mongodb.php
http://zetcode.com/db/mongodbphp/
基本的なデータベース操作用のコマンドを次に示します。
$mng = new MongoDB\Driver\Manager(); // Driver Object created
データベースにデータを挿入するには:
$bulk = new MongoDB\Driver\BulkWrite;
$doc = ["_id" => new MongoDB\BSON\ObjectID, "data" => $someData, "info" => $someInfo];
$bulk->insert($doc);
$mng->executeBulkWrite('dbName.collectionName', $bulk);
データを取得する場合:
$query = new MongoDB\Driver\Query([]);
$rows = $mng->executeQuery("dbName.collectionName", $query);
foreach ($rows as $row)
{
echo "$row->data - $row->info\n";
}
sudo apt-get install php7-mongo
もこれを試してみましたが、肯定的な結果は得られませんでした