设为首页 收藏本站
查看: 1064|回复: 0

[经验分享] MongoDB 在centos6.2 64位下的安装及配置PHP扩展

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2018-10-27 14:32:47 | 显示全部楼层 |阅读模式
  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


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-627191-1-1.html 上篇帖子: 初识mongodb数据库 下篇帖子: 我为什么关注MongoDB-iData
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表