zoukankan      html  css  js  c++  java
  • linux下部署monogoDB服务(以及安装php mogodb扩展)

    这两天网站转移到新的服务器后,登录时出现一个问题,会等待几分钟服务器才响应。

    开始以为是nginx服务器的问题,后面经过排查发现是php一个登陆验证的函数的问题,每次跑到这个函数就会迟钝几分钟。

    经过调试,发现也并不是进入死循环的原因,经过好几个文件的追踪,原来是连接mongoDB的时候出现的问题。

    找到config.php配置文件,ping了下配置的ip,发现连上不。原来那台mongoDB服务器已经不在了。

    经过考虑后,决定在服务器中部署新的mongoDB服务。

    安装php mongoDB扩展


    1.首先下载php的mongodb扩展

    从http://pecl.php.net/package/mongo这个网址下载mongodb的扩展源码包

    wget http://pecl.php.net/get/mongo-1.4.5.tgz

    2.解压安装包

    tar zxf mongo-1.4.5.tgz

    3.进入解压目录,运行phpize进行安装准备

     cd mongo-1.4.5
    
     /usr/local/php/bin/phpize

    4.安装编译

      上述命令运行完后,在目录下就生成了configure文件

      使用./configure命令进行安装配置,然后使用make && make install进行编译安装,命令如下:

    ./configure --with-php-config=/usr/local/php/bin/php-config
    
    make && make install

      5.编辑php.ini增加下述一行添加mongodb扩展

    extension=mongo.so

      重启web服务器和php-fpm,然后php输入phpinfo(),打开浏览器。看到mongodb的内容就说明安装成功。

    或者命令行php -m也可以查看

    安装mongoDB服务端

    下载版本:2.0.2-rc2
    下载链接: 
    wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.0.1.tgz 
    首先在linux中解压缩安装程序
    解压:
    [root@localhost soft]# tar -zxvf mongodb-linux-i686-2.0.2-rc2.tgz
    
    我们把 mongodb-linux-i686-2.0.2-rc2重命名为mongodb
    我们把在mongodb目录下新建一个data目录存放数据、新建一个log目录存放日志,然后在该目录下新建一个日志文件,例如我们命名为mongodb.log
    [root@localhost mongodb]# mkdir log  
    [root@localhost mongodb]# mkdir data  
    [root@localhost mongodb]# cd log  
    [root@localhost log]# touch mongodb.log
    然后定位到mongodb/bin目录中
    [root@localhost local]# cd mongodb/bin  
    使用mongod命令建立一个mongodb数据库链接,端口号设置为27017(也是默认端口),数据库的路径为/mongodb/data,日志路径为/mongodb/log/mongodb.log
    启动命令 :  
    [root@localhost mongodb]# ./bin/mongod -port 27017 --dbpath data/ --logpath log/mongodb.log  --fork
    all output going to: log/mongodb.log 
    [root@localhost mongodb]# ps -ef | grep momgod   (查看是否启动成功)

    常用的启动参数:

       --dbpath:指定存储数据的文件夹

       --logpath:指定日志存储文件

       --logappend:日志以增加方式产生

       --port指定端口,如果不写的话,默认是27017

       --fork代表后台运行(注意:如果不加后台启动参数fork,启动的这个页面不能关闭,使用命令连接数据库时要另打开一个窗口)

    停止命令:

    # ./mongod -shutdown -dbpath=/usr/local/mongodb/data

    通过配置文件启动

    通过配置文件来配置Mongodb
    首先在mongodb目录下新建一个文件,文件名任意,在这里我取名为:mongodb.conf

    [root@localhost mongodb]# vi mongodb.conf 

    然后在配置文件中添加配置信息

    port=27017 
    dbpath=data/ 
    logpath=log/mongodb.log 
    logappend=true 

    解释说明:
    port=10001【代表端口号,如果不指定则默认为 27017 】
    dbpath=data/ 【数据库路径】
    logpath=log/mongodb.log 【日志路径】
    logappend=true 【日志文件自动累加,而不是覆盖】
    启动Mongodb服务

    [root@localhost mongodb]# ./bin/mongod -f mongodb.conf 
    all output going to: log/mongodb.log
    备注:如果启动失败

    非法关闭服务器,会产生mongod.lock文件
    再次强调我的linux发行版本是Fedora
    关于mongodb Error: couldnt connect to server 127.0.0.1 shell/mongo.js:84 - kaizhu_QIN - kaizhu_Qin

    这时候将mongod.lock文件删除就能解决问题。
    执行删除mongod.lock文件:rm -rf mongod.lock

    Ps:如果需要将mongod加入到服务器开机自动启动,执行一下命令:
    chkconfig --levels 235 mongod on

    使用客户端来连接该数据库
    重新开启一个终端,然后切换到mongodb目录下:
    [root@localhost /]# cd usr/local/mongodb  
    然后使用bin/mongo命令来连接该数据库
    [root@localhost mongodb]# ./bin/mongo localhost:27017
    MongoDB shell version: 2.0.2-rc2  
    connecting to: localhost:27017/test  
    >  
    bye  
    往数据库中插入值
    connecting to: localhost:27017/test  
    > db.foo.save({a:1})  
    从数据库中查询
    > db.foo.find()  
    { "_id" : ObjectId("4ee66eb440ef7803a9873d2d"), "a" : 1 }  
    >  
    通过浏览器访问
    在浏览器地址栏输入: http://localhost:27017/ 然后回车访问
    可以看到如下提示:You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
    然后根据提示把端口号加上1000访问 http://localhost:11001/ 、
    就能够访问到Monodb的服务端web页面
  • 相关阅读:
    Linux基础知识
    oracle用户及表空间基础
    渗透测试之目录扫描-Dirbuster
    oracle自定义函数身份证15位和18位的转换
    linux 网络带宽和延时测试
    LNMP(linux+nginx+mysql+php)服务器环境配置
    使用Medusa美杜莎暴力破解SSH密码
    暴力密码在线破解工具
    在linux下搭建NFS服务器实现文件共享
    Nginx是做什么的
  • 原文地址:https://www.cnblogs.com/kyoung/p/6816773.html
Copyright © 2011-2022 走看看