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

相關文章
相關標籤/搜索