php5.6-mongodb3.6.3-安装使用记录

在Linux上安装php的拓展的思路大同小异,这次通过安装php-mongodb拓展的实例抛砖引玉,让大家接触一下这方面的知识。

思路

  • 安装应用
  • 安装php拓展
  • 封装操作类库
  • 使用案例
  • 总结

服务器环境

  • centos 7.2
  • php 5.6
  • Thinkphp 3.2

安装应用

安装应用,一般推荐去相对应的官网下载最新的stable 版本。一方面官网上的源码包一般都有对应的md5值或者sha1值,这个可以保证了数据包的完整性和安全性;另一方面官网上各种安装教程都是最新有效的。

download

我们点击进入mongodb的下载页面。这里插一句,Linux安装软件有三种方式,一种是包管理工具安装,另一种是软件仓库,还有一种是源码包安装。如上图就是需要下载mongodb的源码包,通过源码包编译安装的。如上图,我们可以选择自己对应的操作系统,然后选择操作系统对应的分支,最后下载对应的源码包。
但是我们一般推荐使用YUM软件仓库安装,软件仓库是为了进一步降低软件安装难度和复杂度而设计的技术,为了解决软件包之间的依赖关系。我们可以看到上图中有Instructions for installing with yum,点击进去可看到

yum-install

我们根据上图中的指导:

  1. 新建一个/etc/yum.repos.d/mongodb-org-3.6.repo文件,填充内容如下
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
  1. 执行一下命令
sudo yum install -y mongodb-org
  1. 安装完毕后,开启mongodb服务,接着尝试连接mongodb数据库
sudo service mongod start
mongo --host 127.0.0.1:27017
  1. 如果一切顺利,结果如下图:
link-mongodb

到此,我们完成了mongodb的安装了。

安装php拓展

接下来,就是需要安装php-mongodb拓展,我们先下载解压

git clone https://github.com/mongodb/mongo-php-driver.git

然后进入拓展包目录,接着源码包编译安装这个拓展。源码包安装linux软件的命令原理可以参考这篇文章

cd mongo-php-driver
### 实践证明,php5.6需要更新子模块,下载完整的文件
git submodule update --init
phpize
./configure
make
sudo make install
####检测拓展安装是否的命令。如出现下图,代表OK!
php -m | grep mongodb
extention

至此,php-mongodb的安装完毕。

封装操作类库

mongodb之前有了好几次重大的更新,所以一些php框架集成的mongodb的类库兼容不好。mongodb官方也意识到这个问题,所以官方自己出了个类库,而且支持composer安装。只要将

"mongodb/mongodb": "1.0.2"

添加到项目的composer.json的require对象中就行,然后再项目目录下执行

composer update

等待更新完毕就OK,此时我们就可以在项目使用mongodb了。

使用案例

我们参考mongodb官方的建议案例,并结合我们自己使用的TP框架,可以用来存储OA的用户行为。
大概实现如下

  1. 安装robo 3Tmongodb的GUI客户端,建立一个test数据库,在test数据库下建立一个名为test的collections,为test数据库添加一个用户,用户名:root,密码:root,详细命令参考官网文档。最后修改mongodb的配置文件/etc/mongod.conf,使它支持安全验证

  2. 在Application/Common/Conf/tags.php中为action_begin这个标志位添加一个行为

  <?php
    return array(
        //本地没有mongodb可以注释掉下面这行
        'action_begin'=>array('Home\\Behaviors\\LogAnyThingsBehavior'),
    );
  1. 然后在相对应位置创建一个Home/Behaviors/LogAnyThingsBehavior.class.php文件
<?php
namespace Home\Behaviors;
use Think\Behavior;
class LogAnyThingsBehavior extends Behavior{

  /** 行为 : 记录用户行为
   * @param mixed $param
   */
  public function run(&$param){
          //获取行为信息
            $data['user_id'] = session('user_uid_yz');
            $data['username'] = session('user_yz');
            $data['ip'] = $_SERVER['REMOTE_ADDR'];
            $data['class'] = CONTROLLER_NAME;
            $data['function'] = ACTION_NAME;
            $data['create_time'] = date("Y-m-d H:i:s",time());
            $mongo = (new \MongoDB\Client("mongodb://root:root@127.0.0.1/test"));
            $collection = $mongo ->selectCollection("test","test");
            $insertOneResult = $collection->insertOne($data);
          }
}
?>
  1. 然后就可以登录项目网站,点击浏览下网页。就可以在robo 3T客户端中看到日志数据了
out

总结

至此,我们的目标基本完成了。php的其他拓展也大概是这个思路。希望对大家有帮助。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容