MongoDB 在centos6.2 64位下的安裝及配置PHP擴展

    MongoDB Linux下的安裝及配置PHP擴展  

簡介(摘錄百度百科)

  MongoDB是一個基於分佈式文件存儲的數據庫。由C++語言編寫。旨在爲WEB應用提供可擴展的高性能數據存儲解決方案。 

  MongoDB是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫的。他支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較複雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關係數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。

特點

  它的特點是高性能、易部署、易使用,存儲數據非常方便。主要功能特性有: 

  *面向集合存儲,易存儲對象類型的數據。 

  *模式自由。 

  *支持動態查詢。 

  *支持完全索引,包含內部對象。 

  *支持查詢。 

  *支持複製和故障恢復。 

  *使用高效的二進制數據存儲,包括大型對象(如視頻等)。 

  *自動處理碎片,以支持雲計算層次的擴展性。 

  *支持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下的安裝和啓動 

一、解壓文件到某目錄下,然後重命名:  

[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/        

二、 查看安裝後的文件情況:  

[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文件導出等。  

三、啓動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命令了

四、配置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
mongo
mysql
pcre
PDO
pdo_mysql
pdo_sqlite
Phar
posix
Reflection
session
shmop
SimpleXML
soap
SPL
SQLite
sqlite3
standard
sysvsem
tokenizer
xml
xmlreader
xmlwriter
zip
zlib

[Zend Modules]
the ionCube PHP Loader



 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章