MongoDB 在centos6.2 64位下的安装及配置PHP扩展

    MongoDB Linux下的安装及配置PHP扩展  php

简介(摘录百度百科)mysql

  MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 linux

  MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构很是松散,是相似json的bson格式,所以能够存储比较复杂的数据类型。Mongo最大的特色是他支持的查询语言很是强大,其语法有点相似于面向对象的查询语言,几乎能够实现相似关系数据库单表查询的绝大部分功能,并且还支持对数据创建索引。sql

特色mongodb

  它的特色是高性能、易部署、易使用,存储数据很是方便。主要功能特性有: shell

  *面向集合存储,易存储对象类型的数据。 数据库

  *模式自由。 json

  *支持动态查询。 vim

  *支持彻底索引,包含内部对象。 windows

  *支持查询。 

  *支持复制和故障恢复。 

  *使用高效的二进制数据存储,包括大型对象(如视频等)。 

  *自动处理碎片,以支持云计算层次的扩展性。 

  *支持RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。 

  *文件存储格式为BSON(一种JSON的扩展)。 

  *可经过网络访问。

使用原理

  所谓“面向集合”(Collection-Oriented),意思是数据被分组存储在数据集中,被称为一个集合(Collection)。每一个集合在数据库中都有一个惟一的标识名,而且能够包含无限数目的文档。集合的概念相似关系型数据库(RDBMS)里的表(table),不一样的是它不须要定义任何模式(schema)。 

  模式自由(schema-free),意味着对于存储在mongodb数据库中的文件,咱们不须要知道它的任何结构定义。若是须要的话,你彻底能够把不一样结构的文件存储在同一个数据库里。 

  存储在集合中的文档,被存储为键-值对的形式。键用于惟一标识一个文档,为字符串类型,而值则能够是各类复杂的文件类型。咱们称这种存储形式为BSON(Binary Serialized dOcument Format)。

实际应用

  MongoDB服务端可运行在Linux、Windows或IOS平台,支持32位和64位应用,默认端口为27017。推荐运行在64位平台,由于MongoDB在32位模式运行时支持的最大文件尺寸为2GB。

版本发布

  2012年05月23日,MongoDB 2.1 开发分支发布了! 该版本采用全新架构,包含诸多加强。 

  2012年06月06日,MongoDB 2.0.6 发布,分布式文档数据库。

MongoDB Linux下的安装和启动 

1、解压文件到某目录下,而后重命名:  

[root@localhost src]# tar -xzvf mongodb-linux-i686-1.8.1.tgz.tar         
[root@localhost src]# mv mongodb-linux-i686-1.8.1 /usr/local/mongodb/        

2、 查看安装后的文件状况:  

[root@localhost src]# cd /usr/local/mongodb/        
[root@localhost mongodb]# ls        
bin    GNU-AGPL-3.0    README    THIRD-PARTY-NOTICES        
[root@localhost mongodb]# cd bin/        
[root@localhost bin]# ls        
   bsondump    dbbak    mongo    mongod    mongodump    mongoexport    mongofiles    mongoimport    mongorestore    mongos    mongosniff mongostat 

    bin下的mongod就是MongoDB的服务端进程,mongo就是其客户端,其它的命令用于MongoDB的其它用途如MongoDB文件导出等。  

3、启动MongoDB.      要先创建好MongoDB 存放数据文件和日志文件的目录,此处创建在/data下:  

[root@localhost etc]# cd /data/        
[root@localhost data]# ls        
mongodb_data    mongodb_log       

在MongoDB安装目录下的bin下使用mongod启动MongoDB, 

/usr/local/mongodb/bin/mongod --dbpath=/data/mongodb_data/ --logpath=/data/mongodb_log/mongodb.log --logappend --fork --journal &
参数解释:--logappend日志追加 --fork 之后台形式启动数据库 --journal这个是数据库异常关闭修复        

等待启动成功后,可查看是否启动成功了,默认端口号是27017,固然在启动时也能够指定未使用的其它端口。    先经过查看端口号看MongoDB是否启动了。  

[root@localhost data]# netstat -lanp | grep "27017"     
    tcp                0            0 0.0.0.0:27017                             0.0.0.0:*                                     LISTEN            1573/mongod                         .unix    
    [ ACC ]         STREAM         LISTENING         5874     1573/mongod                 /tmp/mongodb-27017.sock                
能够看到,已启动成功,如今使用mongo客户端访问一下该数据库。    

[root@localhost bin]# cd /usr/local/mongodb/bin/        
[root@localhost bin]# ./mongo        
MongoDB shell version: 1.8.1     
connecting to: test        5.>                 到这一步说明已经安装成功了。

    上述咱们启动MongoDB都是手动使用mongod来启动,这样关闭计算机后,下次再进来它又没启动了,因此还得手动启动,所以,为避免这种繁琐的工做,能够把mongod放到服务自启动项中,这样计算机一开启mongod服务也就启动了。      

    编辑/etc/rc.local,加入下述代码而后再保存便可。           

[root@localhost /]#echo  "rm -rf /data/mongodb_data/mongod.lock && /usr/local/mongodb/bin/mongod --dbpath=/data/mongodb_data/ --logpath=/data/mongodb_log/mongodb.log --logappend --fork --journal & " >> /etc/rc.local

    重启计算机再看MongoDB是否启动,重启后能够直接使用 mongo命令登陆,最终发现是能够成功的。另外,使用mongo命令登陆 MongoDB还要转到mongo命令所在目录再执行./mongo,这样是否是有些麻烦?所以,咱们能够简化这点,将该命令文件copy到/usr/bin下,这样就能够在任何目录下使用mongo命令了。  

1.[root@localhost bin]# ls        
2.bsondump    dbbak    mongo    mongod    mongodump    mongoexport    mongofiles    mongoimport    mongorestore    mongos    mongosniff    mongostat        
3.[root@localhost bin]# cp mongo /usr/bin/             

转到任一目录试下mongo命令:  

[root@localhost bin]# cd /        
[root@localhost /]# mongo        
MongoDB shell version: 1.8.1     
connecting to: test        5.>    

能够看到登陆成功了,说明咱们能够像使用ls命令同样使用mongo命令了

4、配置PHP扩展

[root@localhost src]# wget http://pecl.php.net/get/mongo-1.2.6.tgz
[root@localhost src]# tar    xvzf    mongo-1.2.6.tgz
[root@localhost mongo-1.2.6]# cd    mongo-1.2.6
[root@localhost mongo-1.2.6]# ls #没有configure脚本

bson.c collection.h cursor.c db.h mongo.c mongo_types.h README.md
bson.h config.m4 cursor.h gridfs.c mongo.h php_mongo.c util
collection.c config.w32 db.c gridfs.h mongo_types.c php_mongo.h

[root@localhost mongo-1.2.6]# /usr/local/php5/bin/phpize #最好能用/usr/local/php/bin/phpize 若是不识别的话安装php5-devel:yum -y install  php-devel
会有下面的显示:
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626

[root@localhost mongo-1.2.6]# ls

acinclude.m4 collection.c configure db.h missing php_mongo.c
aclocal.m4 collection.h configure.in gridfs.c mkinstalldirs php_mongo.h
autom4te.cache config.guess config.w32 gridfs.h mongo.c README.md
bson.c config.h.in cursor.c install-sh mongo.h run-tests.php
bson.h config.m4 cursor.h ltmain.sh mongo_types.c util
build config.sub db.c Makefile.global mongo_types.h

#运行后,./configure 脚本就会生成了,这个时候咱们运行./configure脚原本进行配置
[root@localhost mongo-1.2.6]# ./configure --with-php-config=/usr/local/php/bin/php-config
--with-php-config  #这个参数是告诉配置脚本php-config这个程序的路径,php-config的介绍在这里
[root@localhost mongo-1.2.6]# make && make install

而后编辑php.ini文件

[root@localhost src]#  vim /usr/local/php5/etc/php.ini
; http://php.net/user-dir
user_dir =
; Directory in which the loadable extensions (modules) reside. 
; http://php.net/extension-dir
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626/"
extension = mbstring.so
extension = sockets.so
extension = gettext.so
extension = mongo.so

; On windows:
; extension_dir = "ext"
[root@localhost src]# /usr/local/php5/bin/php -m
[PHP Modules]
bcmath
Core
ctype
curl
date
dom
ereg
fileinfo
filter
ftp
gd
hash
iconv
ionCube Loader
json
libxml
mcrypt
memcache
mongomysqlpcrePDOpdo_mysqlpdo_sqlitePharposixReflectionsessionshmopSimpleXMLsoapSPLSQLitesqlite3standardsysvsemtokenizerxmlxmlreaderxmlwriterzipzlib[Zend Modules]the ionCube PHP Loader

相关文章
相关标签/搜索