就做呗。CentOS7 + PHP7 + mongoDB

创建PHP7环境来操作mongoDB。
按照前辈们的教导,详细步骤如下。
无需多思考,只需按照这些步骤,便可获得可用的操作环境的备忘录。

手续是在以下创建的VM环境上进行验证的。
好的,开始做吧。CentOS7 + Apache + MySQL + PHP7。

安装MongoDB

以下的工作由root用户执行

    リポジトリを追加する
vi /etc/yum.repos.d/10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1
    インストール
yum install mongo-10gen mongo-10gen-server
    起動する
service mongod start
    自動起動設定
chkconfig mongod on 

在MongoDB中创建一个用于测试的集合。

    DBを作成する
mongo test_db
use test_db
    testというcollectionを作成する
db.createCollection('test');
    collectionにドキュメントを追加する
db.test.insert( { name:'tanaka', address:'tokyo' } );
    確認
show dbs
show collections
db.test.find();
exit
スクリーンショット 2016-03-08 19.38.12.png

使PHP能够使用mongoDB

    Extensionの一覧を見る
yum --enablerepo=epel,remi,remi-php70 search php70
    mongoDBのExtensionをインストールする
yum --enablerepo=epel,remi,remi-php70 install php70-php-pecl-mongodb
    php.iniに設定を追加する
vi /etc/php.ini
extension=mongodb.so

我当前的环境没有正确设置 extension_dir,所以需要使用完整的路径。(我只是想要一个能正常工作的环境)

extension=/opt/remi/php70/root/usr/lib64/php/modules/mongodb.so
    確認
service httpd restart

如果在phpinfo()中显示了mongodb的信息,那就可以了
http://192.168.33.10/

Kobito.NF0P8U.png

在样本PG中进行操作确认

    サンプルPG
<?php
// DB接続
$manager = new MongoDB\Driver\Manager("mongodb://localhost:27017");

// Insert
$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['name' => '山田', 'address' => '東京']);
$manager->executeBulkWrite('test_db.test', $bulk);

// Select
//$filter = ['address' => ['$gt' => 'tokyo']]; // where句
$filter = [];
$options = [
  'projection' => ['_id' => 0],
  'sort' => ['_id' => -1],
];
$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('test_db.test', $query);

// Select 結果表示
foreach ($cursor as $document) {
  var_dump($document);
}
?>
    実行結果
Kobito.0QOZoP.png
    mongoDBの中身
Kobito.sQm9Rb.png
    mongoDB Extensionのドキュメント

我们将根据以下内容进行操作的实施。

辛苦付出的努力

在互联网上经常推荐的pecl install mongo不能成功安装php7的mongodb扩展。
于是我阅读了文档,进行了一些搜索,花了大约一个小时……
目前我只是想在我的个人电脑上获得一个测试环境,所以没有深入追究。
等到真正开始开发时,我会认真处理的。
另外,旧版本的函数名称和用法可能发生了变化,代码示例也需要重新解读。

广告
将在 10 秒后关闭
bannerAds