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这个标志位添加一个行为

  array('Home\\Behaviors\\LogAnyThingsBehavior'),
    );
  1. 然后在相对应位置创建一个Home/Behaviors/LogAnyThingsBehavior.class.php文件
selectCollection("test","test");
            $insertOneResult = $collection->insertOne($data);
          }
}
?>
  1. 然后就可以登录项目网站,点击浏览下网页。就可以在robo 3T客户端中看到日志数据了
out

总结

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

你可能感兴趣的:(php5.6-mongodb3.6.3-安装使用记录)