Ubuntu 16.04 LTSを実行していますが、PHPでMongodbを使用します。このために私が試した
Sudo apt-get install php5-mongo
ubuntu 14.04 LTSにはこれで十分ですが、私は間違っていました。次のようなエラーメッセージが表示されます。
E: Unable to locate package php5-mongo
マシンOSをUbuntu 16.04 LTS
にアップグレードしたばかりで、PHP 7.0.4
でmongodb
を使用したかった。
これを解決するにはどうすればよいですか?
Mongodb拡張機能をインストールするには、次のようにします。
Sudo apt-get install php-mongodb
今までに解決策を見つけたと思います。しかし、私はそれをどのようにしたかを共有したい:
Sudo apt-get install php5.6-mongo
を実行しました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";
}
またはphp 7
Sudo apt-get install php7.0-mongodb
Dockerfileでこれを使用しています:
echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list
curl -OL https://www.dotdeb.org/dotdeb.gpg \
&& apt-key add dotdeb.gpg \
&& rm dotdeb.gpg
apt-get update -y \
&& apt-get install -y \
php7.0 \
php7.0-mongodb \